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 相关文章推荐
js setattribute批量设置css样式
Nov 26 Javascript
firefox插件Firebug的使用教程
Jan 02 Javascript
javascript hashtable 修正版 下载
Dec 30 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
JS代码实现电脑配置检测功能
Mar 21 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
javascript对HTML字符转义与反转义
Dec 13 Javascript
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
May 22 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 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连接mysql数据库代码
2009/03/10 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
如何使用Strace调试工具
2013/06/03 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
js实现内置计时器
2019/12/16 Javascript
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
python中uuid模块实例浅析
2020/12/29 Python
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
感恩母亲节演讲稿
2014/05/07 职场文书
民族精神月活动总结
2014/08/28 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
sql注入报错之注入原理实例解析
2022/06/10 MySQL