JS控件ASP.NET的treeview控件全选或者取消(示例代码)

时间:2024-06-23 17:53:53 


<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());          
        }  
      }  
    } 


标签:treeview控件,ASP.NET
0
投稿

猜你喜欢

  • python 如何查看pytorch版本

    2021-02-05 05:38:59
  • MySQL中使用or、in与union all在查询命令下的效率对比

    2024-01-16 02:28:45
  • border边框在浏览器中的渲染方式

    2010-03-10 10:52:00
  • 利用Python的tkinter模块实现界面化的批量修改文件名

    2023-08-30 20:45:15
  • python 多线程死锁问题的解决方案

    2023-12-28 03:35:31
  • 用Python的Tornado框架结合memcached页面改善博客性能

    2023-07-21 09:14:20
  • Python中的字典及其使用方法

    2022-03-22 13:31:49
  • Mysql之SQL Mode用法详解

    2024-01-24 06:19:19
  • CSS Hack经验总结

    2008-05-01 13:13:00
  • 2008年10佳改版网站

    2008-09-22 20:15:00
  • 利用Python实现读取Word表格计算汇总并写入Excel

    2021-06-24 06:15:47
  • python用tkinter实现一个gui的翻译工具

    2022-12-13 11:30:48
  • Python爬虫获取基金基本信息

    2022-01-06 02:22:12
  • Python爬虫之BeautifulSoup的基本使用教程

    2022-03-27 18:35:31
  • python使用pandas读xlsx文件的实现

    2021-01-21 05:00:10
  • Python爬虫实现抓取电影网站信息并入库

    2023-12-25 02:42:32
  • JS实现简易图片轮播效果的方法

    2023-07-21 08:19:16
  • Symfony2框架学习笔记之HTTP Cache用法详解

    2024-03-26 23:39:12
  • PyTorch中常用的激活函数的方法示例

    2022-11-02 01:17:44
  • JavaScript中call,apply,bind的区别与实现

    2024-04-22 12:51:26
  • asp之家 网络编程 m.aspxhome.com