Is there any way to get a dynamic menu for Asp.Net web application using JSON Object or XML Data?
Yes why not. Set the datasource of the asp.net menu to the xml coming from the source.
Lets create this menu in few steps.
In web application add a XML file named menu.xml. The Xml Code as follow as
<?xml version="1.0" encoding="utf-8" ?>
<HomePage>
<Menu text="Issue1" url="Issue1.aspx">
<SubMenu text="Concept1" url="Concept1.aspx"></SubMenu>
<SubMenu text="Concept2" url="Concept2.aspx"></SubMenu>
<SubMenu text="Concept3" url="Concept3.aspx"></SubMenu>
</Menu>
<Menu text="Issue2" url="Issue2.aspx">
<SubMenu text="Problem1" url="Problem1.aspx"></SubMenu>
<SubMenu text="Problem2" url="Problem2.aspx"></SubMenu>
<SubMenu text="Problem3" url="Problem3.aspx"></SubMenu>
</Menu>
</HomePage>
Add the XMLDataSource Control to the page from the Data tab of the Toolbox.
Link the DataSourceID as XmlDataSource1 for the Menu control and the menu.xml as DataFile of XmlDataSource control and bind the menu control.
The code for menu control is
<asp:Menu ID="dymenu1" runat="server" DataSourceID="xmlsource1" Orientation="Horizontal">
<DynamicMenuStyle BackColor="#228B22" />
<StaticSelectedStyle BackColor="#FFBB77" />
<DynamicSelectedStyle BackColor="#FFAA99" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<StaticHoverStyle BackColor="#abcdaa" Font-Bold="False" ForeColor="White" />
</asp:Menu>
The code for XmlDataSource is
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/menu.xml"></asp:XmlDataSource>
Here I am using XML File , you can also use dynamic xml instead of the static xml.