当前位置: 首页 > 图文教程 > 网络编程 > Javascript > TreeView节点互斥,autopostback=false的方法

Javascript
jQuery开发者都需要知道的5个小技巧
Extjs学习笔记之六 面版
Javascript 中的类和闭包
IE6下JS动态设置图片src地址问题
Extjs学习笔记之七 布局
Extjs学习笔记之八 继承和事件基础
Extjs TriggerField在弹出窗口显示不出问题的解决方法
JavaScript中的集合及效率
利用js获取服务器时间的两个简单方法
在html页面上拖放移动标签
了解jQuery技巧来提高你的代码
JavaScript 页面坐标相关知识整理
Javascript UrlDecode函数代码
JQuery 遮罩层实现(mask)实现代码
jQuery 页面 Mask实现代码
Javascript的构造函数和constructor属性
js或css文件后面跟参数的原因说明
将CKfinder整合进CKEditor3.0的新方法
jQuery UI-Draggable 参数集合
jQuery 行级解析读取XML文件(附源码)

Javascript 中的 TreeView节点互斥,autopostback=false的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 142 ::
收藏到网摘: n/a

 

问题描述:frameset中的TreeView,里面就四个节点,想打开一个后,关闭其它三个节点。
开始是在TreeView1_Expand里写,倒也能用,可要设置autopostback为true,刷新时很难看,就在网上找资料
相关主题如下:
==================
1. "展开时不提交,改变选择节点时才提交"
2. "使TreeView展开一个节点后自动缩回其他所有的已经展开的节点,就是说同一时间内只有一个展开节点"
3. "TreeView展开无闪烁的解决方法"
4. "TreeView专题讨论" 
5. "TreeView JavaScript控制方法研究"
==================
上面有个javascript角本写的不错,可试了半天老是出错。
于是自已写了一个。


<script  language="JavaScript"> 
  function  initTree()
  { 
    var tree = document.all["TreeView1"];
    tree.attachEvent("onexpand", SelectedIndexChange); //追加个事件
  }
  function SelectedIndexChange()
  {
    var temp = this.TreeView1.clickedNodeIndex;
    var nodes = new Array();
    nodes = this.TreeView1.getChildren();
    for(i=0;i<nodes.length;i++)
    {
      if(i!=temp)
      {
        if(i<10)
   nodeIndex = "0"+i;//我这只用到了四个节点的,十个以上的自已试试看吧。
 this.TreeView1.getTreeNode(nodeIndex).setAttribute('expanded','false');
      }
    }
}
</script>
最后在body里写一个
<body onload="initTree();">
就可以用了。

当然也可以像"TreeView专题讨论"中把javascript写在page_load里,不过那样就很麻烦了,也很容易出错儿。