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实现每日签到功能
Apr 03 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
js输入框使用正则表达式校验输入内容的实例
Feb 12 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
JavaScript如何判断对象有某属性
Jul 03 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 Javascript
浅谈TypeScript 索引签名的理解
Oct 16 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数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
微信小程序websocket实现聊天功能
2020/03/30 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
浅谈Python中数据解析
2015/05/05 Python
讲解Python中if语句的嵌套用法
2015/05/14 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Django框架模板的使用方法示例
2019/05/25 Python
python读取并写入mat文件的方法
2019/07/12 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
诉前财产保全担保书
2014/05/20 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
科级干部培训心得体会
2016/01/06 职场文书