最近在网上找一些关于ASPNET母版页TreeView导航链接问题相关资料很多人都碰到跟我类似的问题于是我就抽了点时间自己调试一下这个问题了
首先描述一下我的问题
当把TreeView控件放到母版页时在做页面导航链接的时候TreeView控件的菜单状态一直保持为最初设置的状态并不会像点击某个页面跳转后还仍然保持点击的那个状态
最简单的方式当然是用框架了问题虽然很容易解决可我还是想琢磨它一下于是就写了个调试程序来分享一下程序比较粗糙能达到我想要的效果就可以了呵呵 于是我去MSDN里面查找一下了关于TreeView控件的相关资料然后再结合自己的思路终于让我写出来了
思路在TreeView控件里面我只设置了两个级别(级别增加的话可能要另外再处理)当我们点击某一个父节点的时候把当前父节点用SESSION会话存储下来点击子节点时判断该节点的父节点是否和SESSION的父节点一致若是就将该父节点的子级展开反之跳过(最好用foreach遍历该导航菜单)
在程序当中最关键的还是要了解一下TreeView控件的SelectAction属性这个属性会涉及到一些控件相关事件如下所示
TreeNodeSelectActionExpand
使节点在展开和折叠状态之间切换相应地引发 TreeNodeExpanded 事件或 TreeNodeCollapsed 事件
TreeNodeSelectActionNone
在选定节点时不引发任何事件
TreeNodeSelectActionSelect
在选定节点时引发 SelectedNodeChanged 事件
TreeNodeSelectActionSelectExpand
选择节点时引发 SelectedNodeChanged 和 TreeNodeExpanded 事件节点只会展开不会折叠