在一个aspx页面添加了一个treeview控件,节点的内容是编程添加的。
我已经将ExpandDepth属性设置为1,第一次打开页面时,能正常展开到根节点的下一级节点,
但是,当点击treeview任何一个节点时,会触发页面回发,然后当页面刷新后,
发现除了根节点,其他的节点都被折叠而看不到了,请问各位高手到底是什么回事?有什么方法解决?
我希望节点能选中,最好选中后不会回发,但最起码即使是回发后节点不会自动被折叠起来。

解决方案 »

  1.   

    1.常用的几个属性和方法   ~Index   获取树节点在树节点集合中的位置。   ~Nodes   获取分配给树视图控件的树节点集合。   ~Parent     获取或设置控件的父容器。   ~SelectedNode   获取或设置当前在树视图控件中选定的树节点。   ~ExpandAll   展开所有树节点。   ~Checked   获取或设置一个值,用以指示树节点是否处于选中状态。   ~Text   获取或设置在树节点标签中显示的文本。   ~Expand   展开树节点。   ~Clear   清空树   ~Remove   从树视图控件中移除当前树节点。   以上由其他网友总结,补充:   ~Height   控件的高度   ~Width   控件的宽度   ~BackColor   背景颜色   ~BorderColor   边框颜色   ~BorderStyle   边框样式   ~BorderWidth   边框宽度   ~CssClass   应用于该控件的CSS类名   ~ExpandedImageUrl   展开时显示的节点图标   ~ImageUrl   未选择或展开是显示的节点图标   ~SelectedImageUrl   选中状态下显示的节点图标   ~Indent   缩进距离,只有在ShowLines设为TRUE时才生效。   ~ShowLines   是否显示层级连接线   ~ShowPlus   是否显示+/-符号按钮   ~ShowToolTip   在有父节点上显示工具提示(+/-号的使用展开/关闭)。   ~AccseeKey   控件使用的键盘快捷键   ~AutoSelect   为TRUE时,当用键盘移动节点时,自动选择新节点   ~AutoPostBack   当改变状态时,自动回存   ~Enabled   控制控件的启用状态   ~EnableViewState   控件是否自动保存其状态以用于往返行程   ~ExpandLevel   初始化控件是展开节点的层数   ~SelectExpands   当选中一个接点时,是否自动展开该节点   ~TabIndex   TAB键次序   ~Visible   控件是否可见       2.实用技巧:   1)怎样点击文字(不是+/-号)即可展开(收缩)子节点   将TREE的ShowToolTip   属性设为false即可。       

    2)当鼠标指到某父接点时,如何不显示显示“节点名:user   +/-   to   expand/collapse”   将TREE的SelectExpands   属性设为TRUE即可。   
        3)不显示树型的问题   首先:控件包没装好,使用上边介绍的控件包装一下试试。   其次:TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.0       4)关于闪烁   将AutoPostBack属性设置为真,SelectedIndexChange才能被执行。不过这样的话刷新的很厉害。不要刷新的话,将AutoPostBack属性设置为FALSE.       5)如何实现用键盘上下左右键移动焦点时,自动选择新节点并执行新节点       将TREE的AutoSelect   属性设为TRUE即可。       6)不想显示+/-符号按钮怎么做?   将TREE的ShowPlus   属性设为False即可。       7)不想显示层级连接线怎么做?   将TREE的ShowLines   属性设为False即可。       8)如何设置节点旁的图标   ~ExpandedImageUrl、ImageUrl、SelectedImageUrl这3个属性是控制图标的,选择自己喜欢的就OK了。
      

  2.   

    this.TreeView1.ExpandAll();
    cache或viewstate保存展开的节点,重新绑定时判断展开节点
      

  3.   

    请问楼上的方法“cache或viewstate保存展开的节点,重新绑定时判断展开节点”具体如何实现啊?
      

  4.   

    扩展
    TreeView1.ExpandAll();
      

  5.   

    是的,除了这个方法外,还要注意IsPostBack
      

  6.   

    把你的treeview控件生成代码贴出来看看,其实treeview控件不用设置任何属性就是你要的那种效果!
      

  7.   

    回复楼上<asp:TreeView ID="typeTree" runat="server" ExpandDepth="1" NodeIndent="10" 
                        PopulateNodesFromClient="False" ShowLines="True" ImageSet="News" />       
      

  8.   

    添加SelectExpands 属性为true
      

  9.   

    <asp:TreeView ID="TreeView1" runat="server"    ShowLines="true" ExpandDepth="1" NodeIndent="10" 
                        PopulateNodesFromClient="False" ImageSet="News" >
    我试过了,我的就没有问题!可能是你内部节点代码属性有问题
      

  10.   

    我用的2008,里面就没有SelectExpands这个属性。
      

  11.   


    我内部的代码比较简单,也就是从数据库读取数据之后根据数据的关系一个个做成TreeNode然后添加到该Treeview中,应该没有改动过其他属性。
      

  12.   


    我的是在页面第一次加载时将数据填充到TreeView里
      

  13.   

    终于解决了,原来是Page_Load里面,填充那个TreeView时要首先判断IsPostBack是否为true,如果是false才需要填充,谢谢各位大侠了~