TreeView 用法(有代码)(asp.net)
2011-07-15 00:00
627 查看
前台代码
后台代码:
<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()); } }
相关文章推荐
- 关于ASP.NET中TreeView用法的一个小例子
- ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)
- Asp.net treeview实现无限级树实现代码
- ASP.NET 2.0 中实现 Treeview 与数据库的绑定(含代码)
- asp.net(c#) static关键字用法小结+示例代码-NET编程
- asp.net StringBuilder的用法 实例代码
- Asp.net treeview实现无限级树实现代码
- asp.net代码中尖括号和百分号的用法
- ASP.NET TreeView树型菜单操作实例(代码调试通过)
- ASP.NET TreeView树型菜单操作实例(代码调试通过)
- ASP.NET实现TreeView的XML数据源绑定实例代码
- asp.net StringBuilder的用法 实例代码
- asp.net代码中尖括号和百分号的用法
- ASP.NET TreeView操作实例(代码调试通过)
- ASP.NET TreeView树型菜单操作实例(代码调试通过)
- Control Study -> Asp.net几个较复杂的显示数据控件(Repeater/DataList/DataGrid)用法 (示例代码下载)
- 用js脚本控制asp.net下treeview的NodeCheck的实现代码