JS控件ASP.NET的treeview控件全选或者取消(示例代码)
发布时间:2024-06-23 17:53:53
<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());
}
}
}


猜你喜欢
- Python果然是一款非常简明的语言,做东西非常流畅,今天又尝试了一下用Serial做了一个控制台的串口通讯,我用的下位机是STM32F10
- 做python项目时,想安装某个依赖包的最新版本,但又不知道它的版本号具体到多少,因此需要搜索查看它的相关简介信息.原来的时候,可以直接通过
- 1. 前言当日期数据作为图表的坐标轴时通常需要特殊处理,应为日期字符串比较长,容易产生重叠现象2. 设定主/次刻度2.1 引用库from m
- 前言turtle库是Python语言中一个很流行的绘制图像的函数库,可以轻松地绘制出精美的形状和图案,很适合用来引导孩子学习编程。turtl
- 在windows+iis服务器上运行asp程序可能会出现数据库无法更新的情况,具体错误信息可能为: 1、Microsoft JET Data
- 之前我给粉丝们搞过个投票,寻找MySQL中那个最熟悉的陌生人~~MySQL中哪些技术点是你既熟悉又陌生的?前三名和我预料大差不差,分别是
- 下面就是我们的authenticate.asp页面,在这里,将用户的信息收集起来,连同最初的URL一起传到一个识别用户身份的页面中。我们可用
- Tag,直译标签,是一种由用户自定义的、用于描述信息 [1]的关键词。Tagging是用户为信息赋予Tag的行为。Delicious,Fli
- 一、表单控件绑定v-modelv-model 双向数据绑定;一般用于表单元素,会忽略表单元素的value、checked、selected的
- 最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下。python的标准库里的日志系统从Python2.3开始支持。只要
- np.random模块常用的一些方法介绍名称作用numpy.random.rand(d0, d1, …, dn)生成一
- 因为需要对数据处理,将excel数据导入到数据库,记录一下过程。使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用x
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 20 - A Few Mootools Tabs项
- 目录行遍历实现linecache实现命令行sed获取总结概要行遍历实现在python中如果要将一个文件完全加载到内存中,通过file.rea
- 一、matplotlib库1、基本绘图命令import matplotlib.pyplot as pltplt.figure(figsize
- 在一众有趣的Python库中,TQDW也算是独树一帜了,原因主要是因为自身所存在的功能效果,比如我们如果在写项目,往往会忘记我们要完成多少量
- 利用python的sftp实现文件上传,可以是文件,也可以是文件夹。版本Python2.7.13 应该不用pip安装更多的插件,都是自带的不
- Mysql迁移历史数据记录一下工作中由于业务需要以及系统的数据库模型变更,导致需要做一下历史数据迁移的解决办法需求陈述一共涉及到三张表,分别
- 本文实例讲述了Python基于回溯法子集树模板解决选排问题。分享给大家供大家参考,具体如下:问题从n个元素中挑选m个元素进行排列,每个元素最
- 这篇博客将介绍如何使用OpenCV制作Mask图像掩码。使用位运算和图像掩码允许我们只关注图像中感兴趣的部分,截取出任意区域的ROIs。应用