JS控件ASP.NET的treeview控件全选或者取消

<script language="javascript">  
  /*  
  函数名称:CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)  
  作者:常东方  
  创建日期:2005-02-02  
  函数功能:实现带checkbox的treeview中  
    1、选中父结点其子结点也全部选中  
    2、取消全部子结点的选择后,父结点的选择也随之取消  
  使用方法:1、在<head></head>中间添加CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode)  
    2、在*.aspx.cs的Page_load()事件中添加yourTreeView.Attribute.Add("OnCheck","CheckNode(yourTreeView.getTreeNode(yourTreeView.clickedNodeIndex))")  
  */  
   
   
  //递归遍历所有子节点  
  function   CheckNode(currentNode)  
  {  
  var   childNode=new   Array();  
  var   parentNodeChild=new   Array();  
  var   isChecked;  
  childNode=currentNode.getChildren();  
  if(currentNode.getAttribute('checked'))  
  {  
  isChecked=true;  
  }  
  else  
  {  
  isChecked=false;  
  }  
  //父节点处理  
  if(currentNode.getParent()!=null)  
  {  
  //选中处理  
  if(currentNode.getAttribute('Checked'))  
  {  
  ParentNode(currentNode);  
  }  
  else  
  //取消选中  
  {  
  ChildNode(currentNode);  
  }  
  }  
  else  
  {  
  //什么也不做  
  }  
  //子节点处理  
  if(childNode.length>0)  
  {  
  for(var   i=0;i<childNode.length;i++)  
  {  
  childNode.setAttribute("Checked",isChecked);  
  if(childNode.getChildren().length>0)  
  {  
  CheckNode(childNode);  
  }  
  }  
  }  
   
  }  
  //递归选中父节点  
  function   ParentNode(currentNode)  
  {  
  if(currentNode.getParent()!=null)  
  {  
  currentNode.getParent().setAttribute('Checked',true);  
  //递归调用ParentNode(currentNode)以遍历更上一层的父节点  
  ParentNode(currentNode.getParent());  
  }  
  }  
  //递归取消选中父节点  
  function   ChildNode(currentNode)  
  {  
  if(currentNode.getParent()!=null)  
  {  
  var   checkedCount=0;  
  var   childNode=currentNode.getParent().getChildren();  
  for   (var   i=0;i<childNode.length;i++)  
  {  
  if(childNode.getAttribute('Checked'))  
  {  
  checkedCount++;  
  }  
  }  
  if(checkedCount==0)  
  {  
  currentNode.getParent().setAttribute('Checked',false);  
  }  
  //递归调用ChildNode(currentNode)以遍历更上一层的父节点  
  ChildNode(currentNode.getParent());  
  }  
  }  
   
  </script>


js递归遍历treeview中某节点的所有子节点的问题
 var   AllRootNode=new   Array();  
    AllRootNode=TreeView1.getChildren();  
    AlertNode(AllRootNode);        
   
    function   AlertNode(NodeArray)  
    {  
      if(parseInt(NodeArray.length)==0)  
        return;  
      else  
      {  
        for(i=0;i<NodeArray.length;i++)  
        {  
          var   cNode;  
          cNode=NodeArray;  
          alert(cNode.getAttribute("Text"));  
          if(parseInt(cNode.getChildren().length)!=0)  
            AlertNode(cNode.getChildren());          
        }  
      }  
    } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值