TreeView里关于checkbox全选,反选的js代码

  //event.srcElement 不兼容火狐
        function client_OnTreeNodeChecked() {
            var obj = window.event.srcElement;
            var treeNodeFound = false;
            var checkedState;
            if (obj.tagName == "INPUT" && obj.type == "checkbox") {
                var treeNode = obj;
                checkedState = treeNode.checked;
                do {
                    obj = obj.parentElement;
                }
                while (obj.tagName != "TABLE")
                var parentTreeLevel = obj.rows[0].cells.length;
                var parentTreeNode = obj.rows[0].cells[0];
                var tables = obj.parentElement.getElementsByTagName("TABLE");
                var numTables = tables.length
                if (numTables >= 1) {
                    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 client_OnTreeNodeChecked1() {
            var obj = window.event.srcElement;
            var treeNodeFound = false;
            var checkedState;
            if (obj.tagName == "INPUT" && obj.type == "checkbox") {
                var treeNode = obj;
                checkedState = treeNode.checked;
                do {
                    obj = obj.parentElement;
                }
                while (obj.tagName != "TABLE")
                var objT = obj;
                do {
                    obj = obj.parentElement;
                }
                while (obj.tagName != "DIV")
                checkParNodes(obj, objT, checkedState);
            }
        }
        function checkParNodes(obj, objT, checkedState) {
            if (obj == null || obj == undefined) {
                return;
            }
            var unChecked = true;
            var treeNodeFound = false;
            if (checkedState == false) {
                var baseTreeLevel = objT.rows[0].cells.length;
                var tables = objT.parentElement.getElementsByTagName("TABLE");
                var numTables = tables.length;
                if (numTables >= 1) {
                    for (i = 0; i < numTables; i++) {
                        var childTreeLevel = tables[i].rows[0].cells.length;
                        if (baseTreeLevel != childTreeLevel) {
                            continue;
                        }
                        var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                        var inputs = cell.getElementsByTagName("INPUT");
                        if (inputs[0].checked) {
                            unChecked = false;
                            break;
                        }
                        if (i == numTables) {
                            break;
                        }
                    }
                }
            }
            if (unChecked == true) {
                var id = obj.id.replace("Nodes", "");
                var pObj = document.getElementById(id + "CheckBox");
                if (pObj == null) {
                    return;
                }
                pObj.checked = checkedState;

                if (pObj.tagName == "INPUT" && pObj.type == "checkbox") {
                    do {
                        pObj = pObj.parentElement;
                    }
                    while (pObj.tagName != "TABLE")
                    var pObjT = pObj;
                    do {
                        pObj = pObj.parentElement;
                    }
                    while (pObj.tagName != "DIV")
                    checkParNodes(pObj, pObjT, checkedState);
                }

            }

 

设置treeview的onclick事件,onclick里面设置对client_OnTreeNodeChecked(),client_OnTreeNodeChecked1()函数的调用就OK了。

转载于:https://www.cnblogs.com/zhanghonjiang2011/archive/2011/09/28/2193942.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值