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 使用手册(三)
Sep 23 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
Oct 26 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
javascript中使用正则表达式清理table样式的代码
Apr 01 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
Jun 19 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
js实现Tab选项卡切换效果
Jul 17 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 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/17 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
基于Jquery实现焦点图淡出淡入效果
2015/11/30 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
js实现右键菜单功能
2016/11/28 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
jquery轮播图插件使用方法详解
2020/07/31 jQuery
在Python中调用ggplot的三种方法
2015/04/08 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
python 正确保留多位小数的实例
2018/07/16 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
python获取栅格点和面值的实现
2020/03/10 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
入党自我评价范文
2014/02/02 职场文书
摄影助理岗位职责
2014/02/07 职场文书
单位委托书怎么写
2014/08/02 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
关于python爬虫应用urllib库作用分析
2021/09/04 Python