JS控件ASP.NET的treeview控件全选或者取消(示例代码)


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());           
        }   
      }   
    } 
Javascript 相关文章推荐
我的Node.js学习之路(四)--单元测试
Jul 06 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
简单实现jQuery多选框功能
Jan 09 Javascript
vue-router 学习快速入门
Mar 01 Javascript
js+canvas实现动态吃豆人效果
Mar 22 Javascript
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
Oct 19 Javascript
jquery实现动态添加附件功能
Oct 23 jQuery
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
JavaScript闭包相关知识解析
Oct 19 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 Javascript
JS冒泡事件的快速解决方法
Dec 16 #Javascript
JS批量操作CSS属性详细解析
Dec 16 #Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 #Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 #Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
Dec 14 #Javascript
js获取url中指定参数值的示例代码
Dec 14 #Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 #Javascript
You might like
PHP 表单提交给自己
2008/07/24 PHP
Yii快速入门经典教程
2015/12/28 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
简单时间提示DEMO从0开始一直进行计时
2013/11/19 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
Python创建数字列表的示例
2019/11/28 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
django rest framework serializers序列化实例
2020/05/13 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
经典c++面试题六
2012/01/18 面试题
本科生求职简历的自我评价
2013/10/21 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
2015个人半年总结范文
2015/03/09 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python
带你了解Java中的ForkJoin
2022/04/28 Java/Android