function checkall(checkflag, checkname) {
            var el = document.getElementsByTagName('input');
            var len = el.length;            for (var i = 0; i < len; i++) {
                if (el[i].type == "checkbox" && el[i].id.indexOf(checkname) > -1) {
                    el[i].checked = checkflag;
                }
            }
        }
<asp:CheckBox ID="SelSignAll" runat="server"
                                onclick="checkall(this.checked,'SelSign');" />

解决方案 »

  1.   

    再试一个哈
    //TREE控件节点控制事件,调用方法this.TreeViewMoudle.Attributes.Add("onclick", "CheckEvent(event)");
    //子节点的CheckBox跟着父节点变化而变化,同时父节点的CheckBox跟着子节点变化而变化function CheckEvent(evt) {
        evt = window.event || evt;
        var objNode = evt.srcElement || evt.target;
        if (objNode.tagName == "INPUT" && objNode.type == "checkbox") {
            var objParentDiv = objNode.id.replace("CheckBox", "Nodes");
            if (objNode.checked == true) {
                setChildCheckState(objParentDiv, true);            setParentCheckeState(objNode, true);
            }
            else {
                setChildCheckState(objParentDiv, false);            if (!HasOtherChecked(objNode)) {
                    setParentCheckeState(objNode, false);
                }
            }
        }
    }//父节点的CheckBox跟着子节点变化而变化function CheckParentEvent(evt) {
        evt = window.event || evt;
        var objNode = evt.srcElement || evt.target;
        if (objNode.tagName == "INPUT" && objNode.type == "checkbox") {
            var objParentDiv = objNode.id.replace("CheckBox", "Nodes");
            if (objNode.checked == true) {
                setParentCheckeState(objNode, true);
            }
            else {
                if (!HasOtherChecked(objNode)) {
                    setParentCheckeState(objNode, false);
                }
            }
        }
    }//子节点的CheckBox跟着父节点变化而变化function CheckNodeEvent(evt) {
        evt = window.event || evt;
        var objNode = evt.srcElement || evt.target;
        if (objNode.tagName == "INPUT" && objNode.type == "checkbox") {
            var objParentDiv = objNode.id.replace("CheckBox", "Nodes");
            if (objNode.checked == true) {
                setChildCheckState(objParentDiv, true);
            }
            else {
                setChildCheckState(objParentDiv, false);
            }
        }
    }
    //判断是否有并行的其他节点被选中
    function HasOtherChecked(objNode) {
        var objParentDiv = WebForm_GetParentByTagName(objNode, "div");    var chks = objParentDiv.getElementsByTagName("INPUT");
        for (var i = 0; i < chks.length; i++) {
            if (chks[i].checked && chks[i].id != objNode.id) {
                return true;
            }
        }
        return false;
    }//设置父节点function setParentCheckeState(objNode, chkstate) {
        try {
            var objParentDiv = WebForm_GetParentByTagName(objNode, "div");        if (objParentDiv == null || objParentDiv == "undefined ") {
                return;
            }
            else {
                var objParentChkId = objParentDiv.id.replace("Nodes", "CheckBox");
                var objParentCheckBox = document.getElementById(objParentChkId);            if (objParentCheckBox) {
                    objParentCheckBox.checked = chkstate;
                    setParentCheckeState(objParentDiv, chkstate);
                }
            }
        }
        catch (e) { }
    }//设置子节点function setChildCheckState(nodeid, chkstate) {    var node = document.getElementById(nodeid);
        if (node) {
            var chks = node.getElementsByTagName("INPUT");
            for (var i = 0; i < chks.length; i++) {
                chks[i].checked = chkstate;
            }
        }
    }