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);
                }
            }
              
           
           
        }

 效果图:

2011052519593443.jpg

简单明了。

转载于:https://www.cnblogs.com/Elgin/archive/2011/05/25/2057246.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值