在 TreeView 控件中隐藏 ASP.NET SiteMap 节点
我有一个包含所有节点的站点地图。 我正在使用链接到 SiteMap 进行导航的 TreeView 控件。 现在我想隐藏某些节点,使其不出现在 TreeView 上。 是否有可能做到这一点?
I have a SiteMap with All my nodes. I'm using a TreeView control which is linked to the SiteMap for navigation. Now I would like to hide certain nodes from appearing on the TreeView. Is it possible to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,这绝对有可能。 我们这样做的方法是将自定义“IsPhantom”属性添加到我们不希望在站点地图中显示的节点(以及其他各个位置):
然后在站点地图控件中,使用以下代码删除具有“IsPhantom”属性:
Yes, it's definitely possible. The way we do it is to add a custom "IsPhantom" attribute to the nodes we don't want shown in the sitemap (and in various other places too):
Then in the sitemap control, use the following code to remove nodes that have the "IsPhantom" attribute:
基于什么标准? 如果只想隐藏特定的单个节点,请订阅TreeView的NodeDataBound事件并将整个项目(节点)设置为Visible=false。
如果您需要以更好的方式做到这一点并提供更大的灵活性,我建议您实现自己的 SiteMapProvider。 然后,您可以为每个站点地图节点拥有一个 ShowInNavigation 属性,并且可以在构建站点地图时对其进行设置。
Based on what criteria? If you only want to hide specific single nodes, subscribe to the NodeDataBound event of the TreeView and set the whole item (node) to Visible=false.
If you need to do this in a better way and provide more flexibility, I would advise that you implement your own SiteMapProvider. Then you can have a property ShowInNavigation for each sitemap node, and would be able to set that when constructing your sitemap.