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 02 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
JQuery写动态树示例代码
Jul 31 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
10个最优秀的Node.js MVC框架
Aug 24 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
Aug 24 Javascript
vue-cli3配置与跨域处理方法
Aug 17 Javascript
详解如何修改 node_modules 里的文件
May 22 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
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中实现进程间通讯
2006/10/09 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
PDO::quote讲解
2019/01/29 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
详解react-redux插件入门
2018/04/19 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
python实现删除文件与目录的方法
2014/11/10 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
自荐书4要点
2014/01/25 职场文书
十佳护士获奖感言
2014/02/18 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
会计岗位说明书
2014/07/29 职场文书
擅自离岗检讨书
2014/09/12 职场文书
群众路线调研报告范文
2014/11/03 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书