这段代码是树的代码,能够选择当前节点的check时子节点的状态和父节点一样。
我想加一点功能就是让子节的check为false时,父节点的check为false
但我不懂jscript,不知在哪加
   <script type="text/jscript">
        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;
                            }
                        }
                    }
                }
            }
        }
    </script>

解决方案 »

  1.   

    <script type="text/jscript">
            function  UncheckParent (obj)
            {   
            
                
                while(obj !=  null)
                {
                    var tagName = obj.tagName.toLowerCase();
                    
                    if(tagName == "div" && obj.id == "TreeView1")
                    {
                        return;
                    }
                    
                   
                    if( tagName==  "table")
                    {
                         var checkBox = obj.getElementsByTagName("INPUT");
                        
                        if(checkBox.length >0)
                        {
                            checkBox[0].checked = false;
                        }
                        obj = obj.parentElement.previousSibling;
                       
                    }else
                   
                    
                    obj = obj.parentElement;
                }
            }
            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;
                    if(!checkedState)
                    {
                        UncheckParent(obj);
                         
                    }
                    
                    
                    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;
                                }
                            }
                        }
                    }
                }
            }
        </script>