asp. net 的treeview控件

解决方案 »

  1.   


        <script language="javascript">
        function OnNodesCheckChanged(eveId)
        {
            var element = event.srcElement;
            if(element.tagName == "INPUT" && element.type == "checkbox")
            {
                CheckAllNodesByID(eveId, element.id, element.checked);
                CheckParentNodesByID(eveId, element.id, element.checked);
            }
        }
        function CheckParentNodesByID(eveId, eleId, status)
        {
            var eleParent = document.getElementById(eleId).parentElement;
            while(eleParent.tagName != "DIV")
            {
                eleParent = eleParent.parentElement;
            }
            if(eleParent.id != eveId)
            {
                var curNum = parseInt(eleParent.id.replace("Nodes", "").replace(eveId + "n", ""), 10);
                var allNodesNum = GetCheckNodesNum(document.getElementById(eleParent.id.replace("CheckBox", "Nodes")));
                for(var i = 1; i < allNodesNum + 1; i++)
                {
                    var node = document.getElementById(eveId + "n" + (curNum + i) + "CheckBox");
                    if(node.id != eleId)
                    {
                        if(document.getElementById(eleParent.id.replace("Nodes", "CheckBox")).checked && node.checked)
                        {
                            return;
                        }
                    }
                }
                if(document.getElementById(eleParent.id.replace("Nodes", "CheckBox")) != null)
                {
                    document.getElementById(eleParent.id.replace("Nodes", "CheckBox")).checked = status;
                    CheckParentNodesByID(eveId, eleParent.id.replace("Nodes", "CheckBox"), status);
                }
                else
                {
                    alert("error !");
                }
            }
        }
        function CheckAllNodesByID(eveId, eleId, status)
        {
            if(eleId != null && eleId != "")
            {
                if(document.getElementById(eleId.replace("CheckBox", "") + "Nodes") != null)
                {
                    var divNodes = document.getElementById(eleId.replace("CheckBox", "") + "Nodes");
                    var allNodesNum = GetCheckNodesNum(divNodes);
                    var j = eleId.replace("CheckBox", "").replace(eveId + "n", "");
                    for(var i = 1; i < allNodesNum + 1; i++)
                    {
                        var num = parseInt(j, 10) + i;
                        var node = document.getElementById(eleId.replace(j, num));
                        if(node != null)
                        {
                            node.checked = status;
                        }
                    }
                }
            }
        }
        function GetCheckNodesNum(div)
        {
            var num = 0;
            for(var i = 0; i < div.childNodes.length; i++)
            {
                if(div.childNodes[i].tagName == "DIV")
                    num += GetCheckNodesNum(div.childNodes[i]);
                else if(div.childNodes[i].tagName == "TABLE")
                    num++;
            }
            return num;
        }
        function SetNodesCheck(eveIds)
        {
            unSelectAll();
            eveIds = eveIds.split(',');
            for(var i = 0; i < eveIds.length; i++)
            {
                var element = document.getElementById(eveIds[i]);
                element.checked = true;
            }
        }
        function GetAllNodesCheck(treeId)
        {
            if(document.getElementById(treeId).disabled)
                return false;
            var allInput = document.getElementsByTagName("input");
            for(var i = 0; i < allInput.length; i++)
            {
                if(allInput[i].type.value = "checkbox" && allInput[i].checked)
                {
                    document.getElementById("HiddenCheckBoxes").value += allInput[i].id + ",";
                }
            }
        }
        </script>这是以前写的代码, 你可以拿去试试. 不行再改改.
      

  2.   

    treeview 里加 onclick="OnNodesCheckChanged('TreeView的ID');"