• 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

  • 相关阅读:
    __proto__和[[Prototype]]的区别
    JavaScript将类数组转换为数组的三种方法
    VMware报错:在该 VMware Workstation 实例中打开了最大数量的标准虚拟机。 必须在打开新的虚拟机
    bd09坐标转wgs84 JS版本 精准度高
    Layui,table,点击tool按钮获取index
    Layui扩展第三方
    Layui,table,获取当前页码数
    solidwork模型格式转为glb并且压缩
    three.js加载模型,鼠标操作模型,点击获取对象信息
    类似若依的springspringboot+vue后端框架
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/1247516.html
Copyright © 2020-2023  润新知