zoukankan      html  css  js  c++  java
  • TreeView中父子节点的checkbox的同时选中问题,js控制.

    html:

    <asp:TreeView ID="tvLimit" runat="server" ShowCheckBoxes="All" onclick="javascript:GoClick();"  
                                    ShowLines="True" ExpandDepth="0"></asp:TreeView>

    js:

    <script >
     function GoClick()
     {   
       var obj = event.srcElement;
       if(obj.tagName.toUpperCase() != "INPUT") return;
       var tb = obj.parentElement.parentElement.parentElement.parentElement;//当前节点的Table
       SelAllChildren(tb,obj.checked);
     
       tb=  tb.parentElement;//
      
       while(true)
       {
          tb = tb.previousSibling
           if( tb == null) return;
          SetParentCheckBoxStatus(tb);
          tb=  tb.parentElement
          if( tb == null) return;
       }   
     }
     
     function SelAllChildren(tb,bChecked)
     {
        var div = tb.nextSibling;
       try
       {
        for(var i=0;i<div.children.length;i++)
        {
          
            if(div.children[i].tagName.toUpperCase()!="TABLE")continue;
            var chkBox= FindRowCheckBox(div.children[i].rows[0]);
            if(chkBox == null) continue;
            chkBox.checked = bChecked;
           
            SelAllChildren(div.children[i],bChecked);       
        }
        }catch(e){}
     }
     function SetParentCheckBoxStatus(objTb)
     {
        var div = objTb.nextSibling;
        
        var bSelAll = true;
        var bSelOne = false;
        for(var i=0;i<div.children.length;i++)
        {       
            if(div.children[i].tagName.toUpperCase()!="TABLE")continue;
           
            var chkBox= FindRowCheckBox(div.children[i].rows[0]);
           
            if(!chkBox.checked)
            {
                bSelAll =false;
            }else
            {
                bSelOne = true;
            }
        }   
       
        if(objTb.rows!= null)
        {
            var chkBox = FindRowCheckBox(objTb.rows[0])
            chkBox.checked  = bSelOne;       
        }
     }
     
     function FindRowCheckBox(tr)
     {
        for(var i=0;i<tr.cells.length;i++)
        {
            if(tr.cells[i].firstChild.tagName == "INPUT")
            {
                return tr.cells[i].firstChild;
            }
        }
     }

    </script>

  • 相关阅读:
    SQL存储过程基础(从基础开始学,加油!)
    SQL语句经典大全
    SQL SQL语句的增删改查
    web app iphone4 iphone5 iphone6 响应式布局 适配代码
    DOM和 jquery 基础
    HTML 和CSS 语言
    python的目标
    老男孩学习DAY11-1 进程、进程池、协程
    老男孩python DAY10 soket 编程
    老男孩全栈PYTHON -DAY8-面向妹子(对象)编程
  • 原文地址:https://www.cnblogs.com/qfb620/p/1977532.html
Copyright © 2011-2022 走看看