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 setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
Jan 26 Javascript
js数组去重的方法汇总
Jul 29 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
工厂模式在JS中的实践
Jan 18 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
vue项目设置scrollTop不起作用(总结)
Dec 21 Javascript
浅谈JS中几种轻松处理'this'指向方式
Sep 16 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 08 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
element多个表单校验的实现
May 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
Protoss兵种对照表
2020/03/14 星际争霸
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
vuex state中的数组变化监听实例
2019/11/06 Javascript
Python  连接字符串(join %)
2008/09/06 Python
python引用DLL文件的方法
2015/05/11 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
大学生毕业自我鉴定范文
2013/11/03 职场文书
运动会加油稿100字
2014/09/19 职场文书
volatile保证可见性及重排序方法
2022/08/05 Java/Android