aa.aspx

来自「商机管理系统」· ASPX 代码 · 共 169 行

ASPX
169
字号
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="aa.aspx.cs" Inherits="role_aa" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>带Checkbox的Treeview</title>

    <script language="javascript" type="text/javascript">
       // JScript 文件
        var flagCheck = false;
        //获取元素指定tagName的父元素
        function public_GetParentByTagName(element, tagName) 
        {
            var parent = element.parentNode;
            var upperTagName = tagName.toUpperCase();
            //如果这个元素还不是想要的tag就继续上溯
            while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
            {
                parent = parent.parentNode ? parent.parentNode : parent.parentElement;
            }
            return parent;
        }
        //设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
        function setParentChecked(objNode)
        { 
            var objParentDiv = public_GetParentByTagName(objNode,"div");
            if(objParentDiv==null || objParentDiv == "undefined")
            {
                return;
            }
            var objID = objParentDiv.getAttribute("ID");
            objID = objID.substring(0,objID.indexOf("Nodes"));
            objID = objID+"CheckBox";
            var objParentCheckBox = document.getElementById(objID);
            if(objParentCheckBox==null || objParentCheckBox == "undefined")
            {
                return;
            } 
            if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
            return; 
            objParentCheckBox.checked = true;
            setParentChecked(objParentCheckBox);
        }
        //检查此目录的上级中是否还有被选中的项,如果有则保持状态,没有则取消选择.
        function setParentUnCheckedforSignal(objNode)
        {
            var objParentDiv = public_GetParentByTagName(objNode,"div");
            if(objParentDiv==null || objParentDiv == "undefined")
            {
                return;
            }
            var objID = objParentDiv.getAttribute("ID");
            objID = objID.substring(0,objID.indexOf("Nodes"));
            objID = objID+"CheckBox";

            var objParentCheckBox = document.getElementById(objID);
            if(objParentCheckBox==null || objParentCheckBox == "undefined")
            {
                return;
            }        

            if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
            { 
                return; 
            }
            flagCheck = false;
            checkChildChecked(objParentDiv);
            //alert(flagCheck)
            if(!flagCheck)
            {
                objParentCheckBox.checked = false;
                setParentUnCheckedforSignal(objParentDiv);
            }
        }
        //检查子目录是否被选中,如果选中则修改标志flagCheck
        function checkChildChecked(divID)
        {
            var objchild = divID.children;
            for(var i=0;i<objchild.length;i++)
            {
                var tempObj = objchild(i);
                //alert(tempObj.tagName + "  " + tempObj.type);
                if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
                {
                    if(tempObj.checked == true)
                        flagCheck = true;
                }
                checkChildChecked(tempObj)
            }
        }
        //设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
        function setChildUnChecked(divID)
        { 
            var objchild = divID.children;
            var count = objchild.length; 
            for(var i=0;i<objchild.length;i++)
            {
                var tempObj = objchild(i);
                if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
                {
                    tempObj.checked = false;
                }
                setChildUnChecked(tempObj); 
            }
        }
        //设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
        function setChildChecked(divID)
        { 
            var objchild = divID.children;
            var count = objchild.length; 
            //alert(objchild(1).tagName);
            for(var i=0;i<objchild.length;i++)
            {
                var tempObj = objchild(i);
                if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
                {
                    tempObj.checked = true;
                }
                setChildChecked(tempObj); 
            }
        }
        //触发事件
        function CheckEvent()
        {
            var objNode = event.srcElement; 
            if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
            return;
            if(objNode.checked==true)
            {
                setParentChecked(objNode);
                var objID = objNode.getAttribute("ID");
                var objID = objID.substring(0,objID.indexOf("CheckBox")); 
                //alert(objID);  treeview1n2
                var objParentDiv = document.getElementById(objID+"Nodes");
                if(objParentDiv==null || objParentDiv == "undefined")
                {
                    return;
                } 
                //alert(objParentDiv.innerHtml);
                setChildChecked(objParentDiv);
            }
            else
            {
                setParentUnCheckedforSignal(objNode);
                var objID = objNode.getAttribute("ID");
                var objID = objID.substring(0,objID.indexOf("CheckBox")); 
                var objParentDiv = document.getElementById(objID+"Nodes");
                if(objParentDiv==null || objParentDiv == "undefined")
                {
                    return;
                } 
                setChildUnChecked(objParentDiv);
            }
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="True">
            </asp:TreeView>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="show" /></div>
    </form>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?