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上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 Javascript
javascript闭包概念简单解析(推荐)
Jun 03 Javascript
JS库之Highlight.js的用法详解
Sep 13 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vue定义全局变量和全局方法的方法示例
Aug 01 Javascript
Vue多组件仓库开发与发布详解
Feb 28 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
Oct 16 Javascript
微信小程序实现选择地址省市区三级联动
Jun 21 Javascript
vue实现拖拽进度条
Mar 01 Vue.js
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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
python删除文件示例分享
2014/01/28 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
python 写一个性能测试工具(一)
2020/10/24 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
大型车展策划方案
2014/02/01 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
公司考勤管理制度
2015/08/04 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫