日期:2014-05-18  浏览次数:20502 次

请教高手帮忙解决TreeView控件状态的问题,100分
我用TreeView做了树形的导航菜单,

我想点某一个节点时,打开该页,继续保持TreeView在该节点的展开状态


但是TreeView又继续回到折叠状态 ,需要重新点开


请高手解决下

http://gw.tradekey-hb.com/

------解决方案--------------------
首先设置EnableState的属性为false
然后设置Expandeth为0
以前做过类似的案例,就是这样设置的,绑定的方法用的递归
------解决方案--------------------
可以把所有节点的状态保存在Session中,然后再新页面里去遍历TreeView设置状态
也可以用QueryString
如果是框架结构那就用ViewSate
------解决方案--------------------
给个简单的例子
HTML code

<asp:TreeView ID="tv" runat="server" ExpandDepth="0" >
   <Nodes>
    <asp:TreeNode Text="A" Value="A">
     <asp:TreeNode Text="X" Value="X"></asp:TreeNode>
     <asp:TreeNode Text="B" Value="B">
      <asp:TreeNode Text="E" Value="E"></asp:TreeNode>
      <asp:TreeNode Text="F" Value="F">
       <asp:TreeNode Text="Q" Value="Q"></asp:TreeNode>
       <asp:TreeNode Text="W" Value="W"></asp:TreeNode>
      </asp:TreeNode>
      <asp:TreeNode Text="G" Value="G"></asp:TreeNode>
     </asp:TreeNode>
     <asp:TreeNode Text="C" Value="C"></asp:TreeNode>
     <asp:TreeNode Text="D" Value="D"></asp:TreeNode>
    </asp:TreeNode>
   </Nodes>
  </asp:TreeView>

------解决方案--------------------
在<@page >中添加SmartNavigation=true试试
------解决方案--------------------
利用页面间的传值
传递树节点的展开状态
每一页的Page_Load方法里都要加代码判断树节点的展开状态