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()); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值