八百里加急,就差这一点了.

解决方案 »

  1.   


    <script type="text/javascript">function OnTreeNodeChecked() 

        var ele = event.srcElement; 
        if(ele.type=='checkbox') 
        { 
            ele.className = "";    
            var childrenDivID = ele.id.replace('CheckBox','Nodes'); 
            var div = document.getElementById(childrenDivID); 
            if(div!=null)
            {
                var checkBoxs = div.getElementsByTagName('INPUT'); 
                for(var i=0;i<checkBoxs.length;i++) 
                { 
                    if(checkBoxs[i].type=='checkbox') 
                        checkBoxs[i].checked=ele.checked;
                } 
            }
            setParentClassName(ele);
        } 
    }function setParentClassName(currCheckBox)
    {
        var objParentNode= public_GetParentNode(currCheckBox);
        if(public_IsObjectNull(objParentNode))
            return;
        var checkBoxs = objParentNode.getElementsByTagName("INPUT");
        var allSelect = true;
        var allUnSelect = true;
        for(var i=0;i<checkBoxs.length;i++) 
        { 
            if(checkBoxs[i].type=='checkbox') 
            {
                if(checkBoxs[i].checked) allUnSelect = false;
                else allSelect = false;
                if((!allSelect) && (!allUnSelect)) break;
            }
        } 
        var objParentCheckBox = public_Node2CheckBox(objParentNode);
        if(public_IsObjectNull(objParentCheckBox)) return;
        setParentClassName(objParentCheckBox);
        if(allSelect)
        {
            objParentCheckBox.className = ""; 
            objParentCheckBox.checked = true;
            return;
        }
        if(allUnSelect)
        {
            objParentCheckBox.className = ""; 
            objParentCheckBox.checked = false;
            return;
        }
        objParentCheckBox.checked = false;
        objParentCheckBox.className = "parentbox_style";
    }
    //得到本节点所在的Node(Div对象)
    function public_GetParentNode(element) 
    {
        var parent = element.parentNode;
        var upperTagName = "DIV";
        //如果这个元素还不是想要的tag就继续上溯
        while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
        {
            parent = parent.parentNode ? parent.parentNode : parent.parentElement;
        }
        return parent;
    }
    function public_Node2CheckBox(element)
    {
        var objID = element.getAttribute("ID");
        objID = objID.substring(0,objID.indexOf("Nodes")); 
        return document.getElementById(objID+"CheckBox");
    }
    function public_IsObjectNull(element)
    {
        if(element==null || element == "undefined")
            return true;
        else
            return false;
    }</script><asp:TreeView ID="TreeView1" runat="server" ForeColor="White"
        OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" ExpandDepth="1" ShowLines="True"
        OnClick="OnTreeNodeChecked()">
        <SelectedNodeStyle ForeColor="Red" />
    </asp:TreeView>