本篇文章主要是對JS控件ASP.NET的treeview控件全選或者取消的示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
代碼如下: <script language="javascript"> /* 函數名稱:CheckNode(currentNode)、ParentNode(currentNode)、ChildNode(currentNode) 函數功能:實現帶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()); } } }