当前位置:编程学习 > C#/ASP.NET >>

怎样才能使treeview 每次只展开一个节点

比如
a
--a1
--a2
--a3
b
--b1
--b2
c
--c1

现在每次只展开一个子节点
比如
现在状态时
a
--a1
--a2
--a3
b
c

然后我点了c节点后,要把c子节点展开,但是要把a节点收起来
也就是点了c节点后,效果为
a
b
c
--c1



不能用ajax,否则会有些延迟,效果不好 --------------------编程问答-------------------- sf```关注 --------------------编程问答-------------------- up学习 --------------------编程问答-------------------- 这个还没试过。楼主你试加个判断呢。 --------------------编程问答-------------------- 这个可太麻烦了  首先要先判断  你点的节点是位于哪一层的
然后还要判断 这属于这一层到底有多少个平级节点是展开的(主要就是这个 好象没有这个属性)
然后再写 当点击这个节点的时候 收缩别的所有平级节点 --------------------编程问答-------------------- 在展开结点前 关闭其他所有结点

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
                this.treeView1.CollapseAll();   //关闭所有结点                  
                e.Node.Toggle();//展开被点结点
        } --------------------编程问答-------------------- 找个导航菜单研究一下 --------------------编程问答-------------------- :-) --------------------编程问答-------------------- 我们的菜单只有两层,就是我上面的例子 --------------------编程问答-------------------- 我写了个代码,大部分浏览器可以,就是在xp上,头节点前面的图标会消失 很郁闷。。
var elements= document.getElementsByTagName("a");
     var pic=new Array();
     var func=new Array();
     for (var i=0;i<elements.length;i++)
     {     
         if (elements[i].id.indexOf('tvwSystemn')>=0)
         {
            pic[pic.length]=elements[i].id;
            func[pic.length]=elements[i].href;
            elements[i].onclick=function folder()
                            {
                                for (var i=0;i<pic.length;i++)
                                {
                                    if (pic[i]!=this.id)
                                    {
                                        document.getElementById(pic[i]+'Nodes').style.display='none';
                                        if (i==(pic.length-1))
                                            document.getElementById(pic[i]).childNodes[0].src=tvwSystem_Data.images[14];
                                        //this.childNodes[0].src=tvwSystem_Data.images[17];
                                        else if (i==0)
                                            document.getElementById(pic[i]).childNodes[0].src=tvwSystem_Data.images[17];
                                        else
                                            document.getElementById(pic[i]).childNodes[0].src=tvwSystem_Data.images[11];
                                    }
                                }
                            }

         }
     } --------------------编程问答-------------------- 你的treeview有几层?
如果要关闭同级的节点的话,可以循环判断。。。
关闭和当前选择节点父节点Depth相同的节点就可以了应该。
--------------------编程问答-------------------- up --------------------编程问答-------------------- mark --------------------编程问答-------------------- 怎么没有答案呀? --------------------编程问答-------------------- up --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- e.Node.parents.childrens.CollapseAll();   //关闭同级节点                  
e.Node.Toggle();//展开被点结点 --------------------编程问答-------------------- 你在展开节点之前先把所有的节点都关闭了就行。 --------------------编程问答-------------------- 学习了` --------------------编程问答-------------------- mark --------------------编程问答-------------------- 展开节点前,闭合所有节点。 --------------------编程问答--------------------     protected void TreeView_SWJG_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
        if (e.Node.Value != 根节点)
        {
            foreach (TreeNode Node in e.Node.Parent.ChildNodes)
            {
                if(Node.Value!=e.Node.Value)
                    Node.Collapse();
            }
        }
    }
--------------------编程问答-------------------- 可以是可以的,只是在加载初始化treeview时
必须知道那个节点要展开,而且要展开节点的父节点一定也要展开.....
然后在绑定treeview时把要展开的节点的展开属性设置成true即可
(别忘了父节点也要设置成展开) --------------------编程问答--------------------
引用 21 楼 blueice0120 的回复:
protected void TreeView_SWJG_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
  {
  if (e.Node.Value != 根节点)
  {
  foreach (TreeNode Node in e.Node.Parent.ChildNodes)
  {
  if(Node.Value!=e.……


经测试,管用!谢谢!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,