2

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

是否有跳过“主页”并获取此菜单的属性(从该站点地图):

| 节点 1 | 节点 2 |

?

4

2 回答 2

6

如果您使用的是 SiteMapsDataSource,您可以通过将 ShowStartingNode 属性设置为 false 来跳过根节点。

于 2009-02-24T14:16:15.380 回答
1

如果您还没有使用 aSiteMapDataSource来填充Menu,您可以这样做并将其ShowStartingNode属性设置为false(并且,如上面的评论中所述,将 a 递减StaticDisplayLevels1,因为您正在删除一个级别),如下所示:

<asp:SiteMapDataSource ID="MenuSource" runat="server" ShowStartingNode="false" />

当然,这只适用于根节点。要跳过其他节点或整个节点级别,有必要在填充之前对源 Xml 进行处理Menu(例如,使用一些 xslt 去除一类节点)。

于 2009-02-24T14:16:02.697 回答