I launched a new ASP.NET 4 WebForm application. By default, the Site.Master file contains the following menu:
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/> <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/> </Items> </asp:Menu>
This menu contains two blocks: "Home" and "O". I like this structure. However, I want to populate NavigationMenu based on the contents of my Web.sitemap file. This time this file looks like this:
<?xml version="1.0" encoding="utf-8" ?> <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > <siteMapNode> <siteMapNode url="/Default.aspx" title="Home" description=""></siteMapNode> <siteMapNode url="/Products/List.aspx" title="Products" description=""></siteMapNode> </siteMapNode> </siteMap>
I changed the NavigationMenu code to look like this:
<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" /> <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />
My problem is that this approach creates a small block that represents the menu. When the user hangs over it, two submenu items are displayed "Home" and "Products". Oddly enough, the web.sitemap file for only one siteMapNode is a child of the siteMap . How do I make "Home" and "Products" appear just like "Home" and "About", giving me the flexibility to use a sitemap?
Thanks!
Villager
source share