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 相关文章推荐
firefox插件Firebug的使用教程
Jan 02 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
Jun 12 Javascript
AngularJS基础 ng-srcset 指令简单示例
Aug 03 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
jQuery实现级联下拉框实战(5)
Feb 08 Javascript
JavaScript之promise_动力节点Java学院整理
Jul 03 Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
Apr 27 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_SELF的安全问题
2009/09/05 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
thinkPHP框架实现生成条形码的方法示例
2018/06/06 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
python实现rest请求api示例
2014/04/22 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
Python中的取模运算方法
2018/11/10 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
Golang 遍历二叉树
2022/04/19 Golang