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

 更新时间:2013年12月16日 09:13:10   作者:  
本篇文章主要是对JS控件ASP.NET的treeview控件全选或者取消的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

复制代码 代码如下:

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

相关文章

  • js输出数据精确到小数点后n位代码

    js输出数据精确到小数点后n位代码

    要保留小数点后N位的问题,经过一番思索,终于解决了,这篇文章主要介绍了js输出数据精确到小数点后n位代码,感兴趣的朋友可以参考一下
    2016-07-07
  • 微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)

    微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)

    这篇文章主要介绍了微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • js中cookie的使用详细分析

    js中cookie的使用详细分析

    JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求。 cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。
    2008-05-05
  • javascript当中的代码嗅探扩展原生对象和原型(prototype)

    javascript当中的代码嗅探扩展原生对象和原型(prototype)

    如果不是有特殊需要而去扩展原生对象和原型(prototype)的做法是不好的,除非这样做是值得的,例如,向一些旧的浏览器中添加一些ECMAScript5中的方法
    2013-01-01
  • 如何将一个String和多个String值进行比较思路分析

    如何将一个String和多个String值进行比较思路分析

    开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,感兴趣的朋友可以了解下哈
    2013-04-04
  • js实现数字每三位加逗号的方法

    js实现数字每三位加逗号的方法

    这篇文章主要介绍了js实现数字每三位加逗号的方法,以实例形式讲述了js实现数字每三位加逗号的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 使用JavaScript触发过渡效果的方法

    使用JavaScript触发过渡效果的方法

    hover 和 :focus 这样的伪类,我们可以很方便的将元素从一个样式切换到另一个样式,而且切换是会有过渡效果。但有时我们想要使用 js 来驱动过渡(即在代码中触发过渡)也是可以实现的,下面通过本文给大家介绍下
    2017-01-01
  • 记一次webapck4 配置文件无效的解决历程

    记一次webapck4 配置文件无效的解决历程

    这篇文章主要介绍了记一次webapck4 配置文件无效的解决历程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 简介EasyUI datagrid editor combogrid搜索框的实现

    简介EasyUI datagrid editor combogrid搜索框的实现

    这篇文章主要介绍了EasyUI datagrid editor combogrid搜索框的实现,涉及到EasyUI中combogrid的使用方法的相关知识,非常具有参考价值,需要的朋友可以参考下
    2016-04-04
  • TypeScript入门-接口

    TypeScript入门-接口

    在TypeScript里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。本文将详细介绍TypeScript接口的相关知识。
    2017-03-03

最新评论