删除站点地图的树视图的根节点

时间:2013-03-06 16:03:34

标签: asp.net treeview sitemap nodes

我有一个位于asp.net页面的菜单。我使用treeview控件来显示我的sitemenu。唯一的问题是我有一个实际上什么都不做的根节点。

目前我的菜单结构如下:

-empty root node
 我---首页
 我---日历
 我---....

但我想这样:

- 首页
-Calendar
-....

所以基本上应该删除或隐藏根节点,只要用户无法点击或看到它...

有一种简单的方法吗?我试图删除空< siteMapNode>标签,但这给了我一个错误......

1 个答案:

答案 0 :(得分:1)

SiteMapDataSource中有一些属性可以帮助控制它。类似的东西:

<asp:SiteMapDataSource ID="_siteMapData" runat="server" ShowStartingNode="false" StartFromCurrentNode="true" />
<asp:TreeView ID="_tree" NodeWrap="true" ExpandDepth="1" DataSourceID="_siteMapData" runat="server"></asp:TreeView>

更改ShowStartingNode的值应该是您所需要的。

您还可以从代码隐藏中更改该值。这将根据当前节点是否有子节点来更改初始节点(没有子节点,上升级别):

SiteMapNode currNode = System.Web.SiteMap.CurrentNode;
_siteMapData.StartingNodeOffset = currNode != null && currNode.HasChildNodes ? 0 : -1;