JS控件ASP.NET的treeview控件全选或者取消
2011-08-28 17:12
417 查看
<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());
}
}
}
/*
函数名称: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());
}
}
}
相关文章推荐
- ASP.NET CheckBoxList 控件实现全选、反选、清除功能 利用js
- Jquery 实现Asp.net控件 TreeView的二级节点全选/全不选
- ASP.NET TREEVIEW 级联全选/取消
- asp.net GridView控件中模板列CheckBox全选、反选、取消
- asp.net中常用到得 js全选、取消
- JS实现复选框(Checkbox)全选和取消 --ASP.NET中实例运用
- asp.net GridView控件中模板列CheckBox全选、反选、取消
- ASP.NET解决验证控件与JS脚本验证冲突
- 在 ASP.NET 页面中使用 TreeView 控件
- 虚拟主机下asp.net 2.0的导航控件treeview,menu等出错。
- ASP.NET - 填充 TreeView Web 服务器控件中的树节点
- 如何封装JS和CSS文件封装为服务器端控件---ASP.NET 2.0
- Asp.net -----Treeview控件
- Asp.net 2.0 TreeView的checkbox Js全选与反选
- asp.net treeview控件无刷新选择和删除节点的ajax方法
- 关于asp.net 引用外部js文件或者json文件中文乱码的问题
- JS 某一区域内所有CheckBox全选和取消全选(.net)
- asp.net 验证控件RequiredFieldValidator与js冲突的解决