zoukankan      html  css  js  c++  java
  • TreeView绑定XML

    前台HTML:

    <asp:TreeView ID="TreeViewMU" runat="server" ShowCheckBoxes="All"  AutoGenerateDataBindings="False" ontreenodecheckchanged="TreeViewMU_TreeNodeCheckChanged">
           
    </asp:TreeView>

     

    后台CS:

    -----------绑定TreeView--------------------------------------------------------------------------

          protected void TreeVMU()
            {
                XmlDocument xmldoc = new XmlDocument();
                string spath = Server.MapPath("~\\xml\\navigation.xml");
                xmldoc.Load(spath);
                TreeViewMU.Nodes.Clear();
               
                TreeViewMU.Nodes.Add(new TreeNode(xmldoc.DocumentElement.Name));
                TreeNode tnode = new TreeNode();
                tnode = (TreeNode)TreeViewMU.Nodes[0];
                addTreeNode(xmldoc.DocumentElement,tnode);
                //TreeViewMU.ExpandAll();

            }
            private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
            {
                XmlNode xNode;//存放xml节点
                TreeNode tNode;//存放树节点
                XmlNodeList xNodeList;//存放节点集合(这里是所有子节点的集合)
                if (xmlNode.HasChildNodes)//判断是否有子节点
                {
                    xNodeList = xmlNode.ChildNodes;//子节点集合
                    for (int i = 0; i <= xNodeList.Count - 1; i++)
                    {
                        xNode = xmlNode.ChildNodes[i]; //获取当前子节点
                        TreeNode node = new TreeNode();
                        node.Text = xNode.Attributes["Name"].Value;
                        treeNode.ChildNodes.Add(node);
                        tNode = treeNode.ChildNodes[i];//获取当前树节点
                        addTreeNode(xNode, tNode);     //递归
                    }
                }
                else
                {
                    treeNode.Text = xmlNode.Attributes["Name"].Value;
                }
            }

           --------------------------选择Checkbox---------------------------------------------------
            private void CheckTreeNode(TreeNode treeNode,bool tf)
            {
                TreeNode tNode;//存放树节点
                if (treeNode.ChildNodes.Count>0)//判断是否有子节点
                {
                    for (int i = 0; i <= treeNode.ChildNodes.Count - 1; i++)
                    {
                        tNode = (TreeNode)treeNode.ChildNodes[i]; //获取当前子节点
                       
                        tNode.Checked = tf;

                        CheckTreeNode(tNode, tf);     //递归
                    }
                }
                else
                {
                  
                     treeNode.Checked = tf;
                   
                }
            }

            protected void TreeViewMU_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
            {

                if (TreeViewMU.CheckedNodes.Count > 0)
                {
                    if (e.Node.Checked == true)
                    {
                        e.Node.Checked = true;
                        CheckTreeNode(e.Node, true);
                    }
                    else
                    {
                        e.Node.Checked = false;
                        CheckTreeNode(e.Node, false);
                    }
                }
                  
               
               
            }

     效果图:

    简单明了。

  • 相关阅读:
    微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码
    设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)
    微信小程序之上传图片和图片预览
    微信小程序上传图片(前端+PHP后端)
    微信小程序拒绝授权后重新拉起授权窗口
    微信小程序如何使用 Git 实现版本管理和协作开发
    配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境
    linux 系统下Anaconda的安装【安装python3.6环境首选】
    利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)
    利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验(一)
  • 原文地址:https://www.cnblogs.com/Elgin/p/2057246.html
Copyright © 2011-2022 走看看