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

  • 相关阅读:
    兔子数
    忠诚
    mysql字段名与关键字冲突(near "to":syntax error)
    C/C++使用心得:enum与int的相互转换
    ubuntu重新安装 apache2
    ubuntu 删除mysql
    Notepad++ 代码格式化
    linux文件字符集转换(utf8-gb2312)
    字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
    c语言判断是否是utf8字符串,计算字符个数
  • 原文地址:https://www.cnblogs.com/EasyLive2006/p/1247516.html
Copyright © 2011-2022 走看看