zoukankan      html  css  js  c++  java
  • TreeView控件在客户端的 全选/全消 脚本实现

    首先,在aspx页面中的TreeView定义中,定义:

    <asp:TreeView ID="tvwAll" runat="server" ShowCheckBoxes="All" onclick="postBackByObject()">
    </asp:TreeView>

    第二步,实现javaScript方法:

    function postBackByObject()
    {   
        
    var o = window.event.srcElement;
        
    if (o.tagName == "INPUT" && o.type == "checkbox"//点击treeview的checkbox是触发
        {
           
    var d=o.id;//获得当前checkbox的id;
           var e= d.replace("CheckBox","Nodes");//通过查看脚本信息,获得包含所有子节点div的id
           var div= window.document.getElementById(e);//获得div对象
          if(div!=null)  //如果不为空则表示,存在自节点
          {
               
    var check=div.getElementsByTagName("INPUT");//获得div中所有的已input开始的标记
               for(i=0;i<check.length;i++)    
               {
                    
    if(check[i].type=="checkbox"//如果是checkbox
                    {
                      check[i].checked
    =o.checked;//字节点的状态和父节点的状态相同,即达到全选
                    }

               }

          }
          
    else  //点子节点的时候,使父节点的状态改变,即不为全选
          {
              
    var divid=o.parentElement.parentElement.parentElement.parentElement.parentElement; //子节点所在的div

              
    var id= divid.id.replace("Nodes","CheckBox"); //获得根节点的id

              
    var checkbox=divid.getElementsByTagName("INPUT"); //获取所有子节点数
              var s=0;
              
    for(i=0;i<checkbox.length;i++)    
               {
                  
    if(checkbox[i].checked)  //判断有多少子节点被选中
                  {
                     s
    ++;   
                  }
               }
      
            
    if(s==checkbox.length)  //如果全部选中 或者 选择的是另外一个根节点的子节点 ,
            {                               //    则开始的根节点的状态仍然为选中状态
             window.document.getElementById(id).checked=true;
            }
            
    else
            {                               
    //否则为没选中状态
             window.document.getElementById(id).checked=false;
            }

          }    

        } 

    }

    该方法来自于:http://www.cnblogs.com/ltenai/archive/2007/06/28/798822.html

  • 相关阅读:
    同一个ip、不同端口的两个应用,cookie竟然是可以互相访问到
    JS类型判断typeof、instanceof、Object.prototype.toString.call()
    js 控制一次加载一张图片,加载完成后再加载下一张
    cookie机制和session机制的区别
    Do not access Object.prototype method 'hasOwnProperty' from target object
    Vue 中使用mockjs模拟后端数据
    vue遍历数据字典
    this的用法
    关于html5的离线缓存(转帖)
    js正则 (二)
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/1247516.html
Copyright © 2011-2022 走看看