Posted in Javascript onDecember 16, 2013
<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()); } } }
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@