从ASP.NET中的web.sitemap文件构建菜单

我已经开始了一个新的ASP.NET 4 WebForm应用程序.默认情况下,Site.Master文件包含以下菜单:

<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>

此菜单包含两个块:“Home”和“About”.我喜欢这种结构.但是,我想根据Web.sitemap文件的内容填充NavigationMenu.这时,这个文件看起来像这样:

<?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>

我将NavigationMenu代码更改为如下所示:

<asp:SiteMapDataSource ID="mySiteMapDataSource" runat="server" />
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" DataSourceID="mySiteMapDataSource" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" />

我的问题是,这种方法创建了一个代表菜单的小块.当用户将鼠标悬停在此时,两个子菜单项将显示“Home”和“Products”.奇怪的是,web.sitemap文件只允许一个siteMapNode作为siteMap元素的子节点.我如何使“Home”和“Products”以“Home”和“About”的方式出现,同时让我灵活地使用站点地图?

谢谢!

解决方法

对我来说ShowStartingNode =“false”效果更好.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...