Click here to Skip to main content
12,446,146 members (82,925 online)
Click here to Skip to main content
Add your own
alternative version


94 bookmarked

ASP.NET Dynamic XML Web Menu Control based on JavaScript

, 22 Sep 2005
Rate this:
Please Sign up or sign in to vote.
ASP.NET dynamic XML web menu control based on JavaScript.


This is a free web based menu (JavaScript enabled) control. There are not many web menu controls available that support dynamic menu creation and binding. This WebMenu control supports dynamic menu creation, XML menu binding and also DataSet binding. This control uses triga (free script) JavaScript menu internally. Any complex menu structure can be represented using a simple XML schema. Menu position and style can be easily applied and changed dynamically without affecting the web application.

Steps to setup WebMenu

  1. Create a new ASP.NET web project, right click on ToolBox; choose 'Add/Remove items' and add the SuperControls.WebMenu.dll reference (compile SuperControls.WebMenu.cproj to get the DLL).
  2. Copy the JS files menu_tpl.js and menu.js to the root directory of the site.
  3. Copy menu stylesheet menu.css file to the subdirectory css.
  4. Copy menudata.xml to the root directory.
  5. Create an ASPX file and drag and drop the WebMenu control to the WebForm and use one of the methods (given below) to bind the XML/dynamic data to the menu control.


<cc1:WebMenu id="WebMenu1" MenuXMLPath="\\ServerName\rad\menudata.xml" 
                                        PadWidth="24" runat="server">
Other samples
<cc1:WebMenu id="WebMenu2" MenuXMLPath="ServerName\rad\menudata.xml" 
                      ImageArrow="<img src=images\\arrow.gif border=0" 
                      PadWidth="22" runat="server">
<cc1:WebMenu id="WebMenu3" MenuXMLPath="\\ServerName\rad\menudata.xml" 
                           ImageArrow="" PadWidth="26" runat="server">

Ways of binding menu items dynamically...

Method 1

Set MenuXMLPath property with the path of the XML menu file in the server.

Method 2

Create new DataSet with the XML file and bind to the web menu control.

For example:

DataSet dsMenu = new DataSet();
WebMenu1.DataSource = dsMenu;

Method 3

Get the menu data from database and populate the DataSet with the following structure:

  • Column 1 : menuid (unique ID of menu item).
  • Column 2 : name (name of the menu item).
  • Column 3 : root (parent of the menu item. If it is the starting/root item then the root value will be "" else it will be the value of the parent menuid).
  • Column 4 : url (URL for the menu item).

For example:

WebMenu1.DataSource = dsMenu;
// (Sample DataSet is given below.)

XML menu file (sample)

<?xml version="1.0" encoding="utf-8" ?> 
    'Level 0 nodes
    <menuitem root="" name="Search Sites" menuid="1" />
    <menuitem root="" name="Webmail Sites"  menuid="2" />
    <menuitem root="" name="DotNet Sites"  menuid="3" />
    'Level 1 Items
    <menuitem root="1" name="Google" url="" 
    <menuitem root="1" name="Altavista" url="" 
    'Level 1 Items
    <menuitem root="2" name="Hot-mail" url=""  menuid="21"/>
        'Level 2 Items
        <menuitem root="21" name="Hotmail" url="" 
        <menuitem root="21" name="MSN" url="" 
    <menuitem root="2" name="Yahoo" url="" 
    <menuitem root="2" name="Rediff" url="" 
    'Level 1 Items
    <menuitem root="3" name="Microsoft" url="" 
    <menuitem root="3" name="GotDotNet" url="" 
    <menuitem root="3" name="CodeProject" url="" 
    <menuitem root="3" name="ASpdotnet" url="" 

In the above sample, the root attribute represents the parent of the menu item. The root attribute will be empty for parent/level zero menu items.

Sample dynamic menu DataSet (with one DataTable)

root name menuid url
Search Sites 1
Webmail Sites 2
DotNet Sites 3
1 Google 11
1 Altavista 12
2 Hot-mail 21
21 Hotmail 211
21 MSN 212
2 Yahoo 22
2 Rediff 23
3 Microsoft 31
3 GotDotNet 32
3 CodeProject 33
3 ASpdotnet 34


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

United Arab Emirates United Arab Emirates
Software Engineer from India,Working in .NET for 2 years.

You may also be interested in...


Comments and Discussions

GeneralMicrosoft JScript runtime error: 'menu' is undefined Pin
Member 161041523-Nov-08 20:14
memberMember 161041523-Nov-08 20:14 
Generalset menu as vertical and horiz Pin
ramakrishna_yl18-Nov-07 21:25
memberramakrishna_yl18-Nov-07 21:25 
GeneralThank u a lot Pin
ramakrishna_yl24-Oct-07 0:50
memberramakrishna_yl24-Oct-07 0:50 
AnswerRe: Thank u a lot Pin
Deepak BOB12-Jul-10 19:37
memberDeepak BOB12-Jul-10 19:37 
GeneralSystem.StackOverflowException Pin
ramakrishna_yl23-Oct-07 23:50
memberramakrishna_yl23-Oct-07 23:50 
QuestionCan not see anything Pin
alexaz112-Oct-07 9:28
memberalexaz112-Oct-07 9:28 
Generalkewl Pin
chullan20-Jun-07 20:49
memberchullan20-Jun-07 20:49 
GeneralPlease Inform me Pin
Prapthi25-Mar-07 23:17
memberPrapthi25-Mar-07 23:17 
GeneralGiving ERROR menu is undefined Pin
swapnali.mankar16-Mar-07 0:45
memberswapnali.mankar16-Mar-07 0:45 
GeneralRe: Giving ERROR menu is undefined Pin
André FliP19-Apr-07 9:28
memberAndré FliP19-Apr-07 9:28 
GeneralRe: Giving ERROR menu is undefined Pin
solrac005-Feb-10 5:24
membersolrac005-Feb-10 5:24 
GeneralTigra Menu Pin
treputt2-Mar-07 6:16
membertreputt2-Mar-07 6:16 
Questionneed object in menu.js 78 [modified] Pin
hihba6-Feb-07 15:42
memberhihba6-Feb-07 15:42 
Joketanx Pin
Juan Carlos Guillén Zurita2-Feb-07 5:43
memberJuan Carlos Guillén Zurita2-Feb-07 5:43 
GeneralI don't see anything either. Pin
Grondal17-Nov-06 1:03
memberGrondal17-Nov-06 1:03 
GeneralDont see anything... Pin
keng15099-Nov-06 17:05
memberkeng15099-Nov-06 17:05 
GeneralVertical Menu Pin
csgraham17-Oct-06 9:23
membercsgraham17-Oct-06 9:23 
Generaljust want to said thank you Pin
tarikelmallah16-Oct-06 9:45
membertarikelmallah16-Oct-06 9:45 
QuestionUsing different images for each menu? Pin
saeed_amd20-Sep-06 22:34
membersaeed_amd20-Sep-06 22:34 
QuestionHow to position the menu inside a table cell Pin
reza55311-Sep-06 4:36
memberreza55311-Sep-06 4:36 
AnswerRe: How to position the menu inside a table cell Pin
Kountree9-Oct-06 10:00
memberKountree9-Oct-06 10:00 
AnswerCan not see any menu when we diployee our application in IIS 7 server ......... Pin
vikas197610-Dec-09 23:12
membervikas197610-Dec-09 23:12 
AnswerCan not see any menu when we diployee our application in IIS 7 server . pls help Pin
vikas197610-Dec-09 23:13
membervikas197610-Dec-09 23:13 
QuestionHow to have the menu items overlap the other frame Pin
KUNAL9931-Aug-06 9:05
memberKUNAL9931-Aug-06 9:05 
QuestionHow to change the image in menu control Pin
KUNAL9931-Aug-06 8:29
memberKUNAL9931-Aug-06 8:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160811.3 | Last Updated 22 Sep 2005
Article Copyright 2005 by Krishna_accent
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid