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 相关文章推荐
jquery 防止表单重复提交代码
Jan 21 Javascript
动态加载js和css(外部文件)
Apr 17 Javascript
用js实现输入提示(自动完成)的实例代码
Jun 14 Javascript
禁止空格提交表单的js代码
Nov 17 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
JavaScript包装对象使用详解
Jul 09 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
js生成随机数(指定范围)的实例代码
Jul 10 Javascript
Javascript 实现简单计算器实例代码
Oct 23 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
详解ES6 中的Object.assign()的用法实例代码
Jan 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实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python 基础知识之字符串处理
2017/01/06 Python
python远程连接MySQL数据库
2019/04/19 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
wxPython实现分隔窗口
2019/11/19 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Python Json数据文件操作原理解析
2020/05/09 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
两年的个人工作自我评价
2014/01/10 职场文书
理财学专业自荐书
2014/06/28 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
影视广告专业求职信
2014/09/02 职场文书
主持人开幕词
2015/01/29 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python