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()); } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章