skmMenu 

An ASP.NET Menu Server Control  

HomeGetting StartedExamplesHelp!About

Quick Links


Powered by ASP.NET


Frequently Asked Questions (FAQs)


What is skmMenu?

skmMenu is an open-source, custom ASP.NET server control that renders a menu in the client's browser. skmMenu is easy to use and allows for a high degree of customization. To see skmMenu in action, just look up a bit - the menu at the top and left of each page on the Web site are generated using the latest version of skmMenu. There are also some examples you can check out...

Who is behind skmMenu?

skmMenu was originally created by Scott Mitchell, although other developers have contributed. Robert Vreeland is also a main contributor. Be sure to check out the Contributors page to see all developers who are involved in skmMenu.

What version of ASP.NET does skmMenu work with?

skmMenu has been tested in ASP.NET Web sites that use the .NET Framework 1.0 and 1.1. The skmMenu binary download was compiled using Visual Studio .NET 2003, so it will only run in the .NET Framework 1.1. If you need to support skmMenu on a Web site running the .NET Framework 1.0, you will need to download the skmMenu source code, create a new project in Visual Studio .NET 2002, copy over the files, and compile.

I am using Visual Studio .NET 2002 - how do I get started with skmMenu?

skmMenu can be downloaded in one of two flavors - as a stand-alone binary (the skmMenu.dll assembly), or as a source-code project. The compiled binary is compiled for the .NET Framework version 1.1 and was compiled using Visual Studio .NET 2003.

To use skmMenu on a Web site using the .NET Framework version 1.0, you will need to donwload the source code version and compile it with Visual Studio .NET 2002. To accomplish this, do the following:

  1. Download the skmMenu source code download,
  2. Create a new Visual Studio .NET 2002 project of type C# / Web Control Library,
  3. Manually add in the downloaded .cs and Menu.resx files into the VS.NET 2002 project. (The easiest way to do this is to right-click on the project in the Solution Explorer and choose Add Existing Item, and select the applicable files.)
  4. Next, you'll need to make sure the References folder has the following references:
    • System
    • System.Data
    • System.Design
    • System.Drawing
    • System.Web
    • System.XML
    You can add these by right-clicking on the References folder in the Solution Explorer and selecting the references from the listbox.
  5. Build the project (go to the Build Menu, select Build Solution). (For skmMenu 2.0: At this point you might get a compile-time error on line 148 in MenuItem.cs with regards to the Browsable attribute. You can simply strike the Browsable attibute altogether - this will be removed from future releases. (Realize this line does not cause an error when building in VS.NET 2003.)

At this point you should have been able to successfully compile the project, resulting in a skmMenu.dll assembly.


What is the structure of the XML document that is bound to skmMenu?

A common way of specifying the structure of skmMenu is to bind an XML document to the menu control. To learn the precise structure of this XML document, refer to Examining the XML Structure.

How can I display an arrow next to menu items with a submenu?

You may have noticed that here on skmMenu.com the menu items with submenus in the Examples menu display little triangles next to those menu items that have submenus. There's no built-in property in skmMenu to achieve this affect, and creating such a property would be difficult because the color, size, and position of the triangle depends on a number of factors (font-size, menu colors, etc.).

If you are using images to display each menu item, simply edit the image to have a triangle off to its right. If you are using text for each menu item try the following (these are the steps I used to have the triangle here on skmMenu.com):

  1. Create the triangle graphic. I have absolutely no artistic skills or software if you couldn't guess. The triangle I created was done using Windows Paint and IrFan View.
  2. To have the image appear to the right of the menu text, set the menu item's LeftImage property to the URL of the image. Next, set the LeftImageAlign property to right. You can do this either dynamically when building up the menu, or through the static XML file.

You can see the XML file for the top menu here on skmMenu.com at http://skmmenu.com/menu/MenuData/HeaderMenuData.xml. Check out the "General Examples" menu item to see how I used the <leftimage> and <leftimagealign> elements to achieve this effect. (For more information on the legal elements in the XML file, refer to the FAQ What is the structure of the XML document that is bound to skmMenu?)