none
treeview控件运行后不是我想要的结果? RRS feed

  • 问题

  • 我想请问大家:如果利用treeview控件做好多级菜单?

    我的XML源文件是:

    <?xml version="1.0" encoding="GB2312" ?>
    <Company>全部
      <Manager>部门管理"
         <add>
            <name>张三</name>
            <sex>男</sex>
            <age>25</age>    
         </add>
         <add>负责人
            <name>李四</name>
            <sex>男</sex>
            <age>28</age>    
         </add>
      </Manager>
      <Manager>用户管理
         <add>负责人
            <name>王五</name>
            <sex>男</sex>
            <age>30</age>
         </add>
       </Manager>
    </Company>

    程序文件是:

    。。。。。。

    try
            {
                XmlDocument xmlDOC = new XmlDocument();
               
                xmlDOC.Load(Server.MapPath(sXMLfile));//载入XML文档文件
                tv.Nodes.Clear();//清空之前的加载页面,然后重新载入
                tv.Nodes.Add(new TreeNode(xmlDOC.DocumentElement.Value));//将XML文档的节点文本绑定到TREEVIEW控件上
                TreeNode tNode = new TreeNode();
                tNode = (TreeNode)tv.Nodes[0];
                addTreeNode(xmlDOC.DocumentElement, tNode);
                tv.ExpandAll();//展开全部节点
            }
            catch (XmlException xe)
            {
                throw xe;
            }
        }
        protected void addTreeNode(XmlNode xn,TreeNode tn)
        {
            XmlNode xNode;
            TreeNode tNode;
            XmlNodeList xNodeList;
            if (xn.HasChildNodes)
            {
                xNodeList = xn.ChildNodes;
                for (int i = 0; i <= xNodeList.Count - 1; i++)
                {
                    xNode = xn.ChildNodes[i];
                    tn.ChildNodes.Add(new TreeNode(xNode.Value));
                    tNode = tn.ChildNodes[i];
                    addTreeNode(xNode, tNode);
                }
            }
            else
                tn.Text = xn.OuterXml.Trim();

    。。。。。。

    最后执行的结果:

    +

        +全部

        +

              +部门管理

    。。。。。

    我想知道为什么会每个节点会多一层“+”节点呢?我想实现的是这样的:

    +全部

        +部门管理

    。。。。

    谢谢·!


    2011年5月25日 3:56

答案