我有一个位于asp.net页面的菜单。我使用treeview控件来显示我的sitemenu。唯一的问题是我有一个实际上什么都不做的根节点。
目前我的菜单结构如下:
-empty root node
我---首页
我---日历
我---....
但我想这样:
- 首页
-Calendar
-....
所以基本上应该删除或隐藏根节点,只要用户无法点击或看到它...
有一种简单的方法吗?我试图删除空< siteMapNode>标签,但这给了我一个错误......
答案 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;