• TreeView 用法(有代码)


    前台代码
    <script type="text/javascript">
            //客户端捕捉事件
            function CheckEvent() {
                var objNode = event.srcElement;
                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);
                        }
                    }
                }
            }
    
            //判断是否有并行的其他节点被选中
            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;
                    }
                }
            } 
        </script>
    
    
    
    <body>
        <form id="form1" runat="server">
                   <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" onclick="CheckEvent()">
                    </asp:TreeView>
        
        </form>
    </body>
    
    后台代码:
    private void BindGrid()
    {
    DataTable mytable
    = menuTableBll.GetAllList().Tables[0]; //获取数据

    CreateTree(mytable, TreeView1.Nodes,
    "0");
    }
    private void CreateTree(DataTable dtNodeSets, TreeNodeCollection node, string parent_id)
    {
    DataView dvList
    = new DataView(dtNodeSets);
    dvList.RowFilter
    = "MeunParentId =" + parent_id;

    TreeNode nodeTemp;
    foreach (DataRowView dv in dvList)
    {
    nodeTemp
    = new TreeNode();
    nodeTemp.Text
    = dv["MenuName"].ToString();
    nodeTemp.Expanded
    = true;
    nodeTemp.ToolTip
    = dv["MeunId"].ToString();


    node.Add(nodeTemp);
    CreateTree(dtNodeSets, nodeTemp.ChildNodes, dv[
    "MeunId"].ToString());
    }
    }
  • 相关阅读:
    HandlerThread
    handler原理
    死锁简析
    Android序列化
    AsyncTask原理
    【java线程池】
    java创建线程的三种方式
    service相关
    【hashMap】详谈
    【activity任务栈】浅析
  • 原文地址:https://www.cnblogs.com/zgaspnet/p/2097945.html
Copyright © 2020-2023  润新知