我可以跳过ASP.NET菜单控件中的节点吗?

时间:2009-02-24 14:03:28

标签: asp.net web.sitemap

我有一个像这样的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 |

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去除一类节点)。