JS控制項ASP.NET的treeview控制項全選或者取消

來源:互聯網
上載者:User

<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());          
        }  
      }  
    } 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.