我有一个像这样的web.sitemap:
<siteMapNode url="~/Default.aspx" title="Home" description="" >
<siteMapNode title="Node 1" description="">
<siteMapNode url="" title="Node 1-1" description="" />
<siteMapNode url="" title="Node 1-2" description="" />
</siteMapNode>
<siteMapNode title="Node 2" description="">
<siteMapNode url="" title="Node 2-1" description="" />
<siteMapNode url="" title="Node 2-2" description="" />
</siteMapNode>
</siteMapNode>
如果我使用ASP.NET菜单控件(使用StaticDisplayLevels = 2),我会得到:
|主页|节点1 |节点2 |
是否有跳过“Home”并获取此菜单的属性(来自该站点地图):
|节点1 |节点2 |
答案 0 :(得分:6)
如果您使用的是SiteMapsDataSource,则可以通过将ShowStartingNode属性设置为false来跳过根节点。
答案 1 :(得分:1)
如果您尚未使用SiteMapDataSource
填充Menu
,则可以执行此操作并将其ShowStartingNode
属性设置为false
(并且,如上面的评论,将StaticDisplayLevels
递减1,因为你正在删除一个级别),如下所示:
<asp:SiteMapDataSource ID="MenuSource" runat="server" ShowStartingNode="false" />
当然,这仅适用于根节点。要跳过其他节点或整个节点级别,有必要在填充Menu
之前按下源Xml(例如,使用一些xslt去除一类节点)。