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 相关文章推荐
replace()方法查找字符使用示例
Oct 28 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
原生JS实现的放大镜效果实例代码
Oct 15 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
vue2.0获取自定义属性的值
Mar 28 Javascript
微信小程序 wx.request方法的异步封装实例详解
May 18 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
Nov 10 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 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的一个登录的类 [推荐]
2007/03/16 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
Python中IPYTHON入门实例
2015/05/11 Python
python 循环while和for in简单实例
2016/08/16 Python
python基础教程项目二之画幅好画
2018/04/02 Python
Python Cookie 读取和保存方法
2018/12/28 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
大学毕业感言50字
2014/02/07 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers