asp.net 2.0 treeview 复选框全选或全不选(兼容IE和FireFox)

<script language="javascript" type="text/javascript">
function client_OnTreeNodeChecked(event)
{
    var obj;
    if(event.srcElement!=null )
    {
        obj = event.srcElement;
    }
    else
    {
        obj = event.target;
    }
   

    var treeNodeFound = false;
    var checkedState;
    if (obj.tagName == "INPUT" && obj.type == "checkbox")
    {
        var treeNode = obj;
        checkedState = treeNode.checked;
        do
        {
            obj = obj.parentNode;
        } while (obj.tagName != "TABLE")
        var parentTreeLevel = obj.rows[0].cells.length;
        //var parentTreeNode = obj.rows[0].cells[0];
        var tables = obj.parentNode.getElementsByTagName("TABLE");
        var numTables = tables.length
        if (numTables >= 1)
        {
            goDeeperUnChecked(obj);
            for (i=0; i < numTables; i++)
            {
                if (tables[i] == obj)
                {

                    treeNodeFound = true;
                    i++;
                    if (i == numTables)
                    {
                        return;
                    }
                }
                if (treeNodeFound == true)
                {
                    var childTreeLevel = tables[i].rows[0].cells.length;
                    if (childTreeLevel > parentTreeLevel)
                    {
                        var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                        var inputs = cell.getElementsByTagName("INPUT");
                        inputs[0].checked = checkedState;
                    }
                    else
                    {
                       
                        return;
                    }
                }
            }
        }
      }
}
function goDeeperUnChecked(obj)
{

    var chk1 = false;
    //Get the mom.
    var head1 = obj.parentNode.previousSibling;
    //no rows, cant do my work.
    if(obj.rows == null)
    {
        return ;
    }

    //This is how may rows are at this level.
    var pTreeLevel1 = obj.rows[0].cells.length;
    //Are we a mommy?
    if(head1.tagName == "TABLE")
    {
        //Get the list of rows ahead of us.
        var tbls = obj.parentNode.getElementsByTagName("TABLE");
        //get the count of that list.
        var tblsCount = tbls.length;


        //determine if any of the rows underneath are unchecked.
        for (i=0; i < tblsCount; i++)
        {
            var childTreeLevel = tbls[i].rows[0].cells.length;
            if (childTreeLevel = pTreeLevel1)
            {
                var chld = tbls[i].getElementsByTagName("INPUT");
                if (chld[0].checked == false)
                {
                    chk1 = false;
                    goDeeperUnChecked(head1);//递归向上判断
                    break;
                }
            }
        }
        var nd = head1.getElementsByTagName("INPUT");
        nd[0].checked = chk1;
        //do the same for the level above
        goDeeperUnChecked(obj.parentElement);
       
    }
    else
    {
        return;
    }
}
</script>

 

<asp:TreeView ID="TreeView1" runat="server" ImageSet="XPFileExplorer"
                ShowLines="True"  οnclick="client_OnTreeNodeChecked(event)" ShowCheckBoxes="All" >
            </asp:TreeView>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值