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 相关文章推荐
javascript smipleChart 简单图标类
Jan 12 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
Apr 14 Javascript
jQuery循环滚动新闻列表示例代码
Jun 17 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 Javascript
jQuery操作cookie方法实例教程
Nov 25 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
Aug 10 Javascript
Easyui在treegrid添加控件的实现方法
Jun 23 Javascript
express 项目分层实践详解
Dec 10 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 Javascript
JavaScript单线程和任务队列原理解析
Feb 04 Javascript
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
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的cms
2010/12/19 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP单链表的实现代码
2016/07/05 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
学习ExtJS Column布局
2009/10/08 Javascript
js中的string.format函数代码
2020/08/11 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python性能优化技巧
2015/03/09 Python
python循环输出三角形图案的例子
2019/11/22 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
毕业生物理教师求职信
2013/10/17 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
公司接待方案
2014/03/08 职场文书
学习教师法的心得体会
2014/09/03 职场文书
房产公证委托书范本
2014/09/20 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
烟台的海导游词
2015/02/02 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers