本帖最后由 puputongtong_02 于 2010-04-06 09:44:57 编辑

解决方案 »

  1.   

    就是treeview节点上带超链接的,就象csdn左侧菜单那样的
      

  2.   


    <asp:TreeView ID="tvwAdmin" runat="server" Height="190px" Style="z-index: 100; left: 17px;
                    position: absolute; top: 129px" Width="152px" DataSourceID="XmlDataSource1" ImageSet="Arrows">
                    <ParentNodeStyle Font-Bold="False" />
                    <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
                    <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                        VerticalPadding="0px" />
                    <DataBindings>
                        <asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" />
                        <asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" />
                    </DataBindings>
                    <NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black" HorizontalPadding="5px"
                        NodeSpacing="0px" VerticalPadding="0px" />
                </asp:TreeView>
    <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Admin/XMLAdmin.xml">
                </asp:XmlDataSource>
    <?xml version="1.0" encoding="utf-8" ?>
    <nodes title="管理员控制面板" url="">
        <node title="用户管理" url="">
          <node title="添加用户" url="~/Admin/AddUser.aspx"/>      
          <node title="状态管理" url="~/Admin/UserStates.aspx"/>
          <node title="用户列表" url="~/Admin/ListAllUsers.aspx"/>
          <node title="升级角色" url="~/Admin/RoleUpgrade.aspx"/>
        </node>
        <node title="图书分类管理" url="">
          <node title="添加图书" url="~/Admin/AddBook.aspx"/>
          <node title="添加图书分类" url="~/Admin/AddBookCategory.aspx"/>
          <node title="为书籍分类" url="~/Admin/ListBooksByCategory.aspx"/>
          <node title="书籍列表" url="~/Admin/ListOfBooks.aspx "/>
          <node title="添加图书数量" url="~/Admin/AddBookQuantity.aspx"/>
        </node>
        <node title="订单管理" url="">
          <node title="审核订单" url="~/Admin/OrderDetail.aspx"/>     
        </node>
        <node ti tle="退出 " url="javascript:window.close()"/> 
    </nodes>一,XmlDataSource 很方便的
    二,绑定后记得根据XML文档注册节点,如下:<DataBindings>
                        <asp:TreeNodeBinding DataMember="nodes" TextField="title" NavigateUrlField="url" />
                        <asp:TreeNodeBinding DataMember="node" TextField="title" NavigateUrlField="url" />
                    </DataBindings>
      

  3.   

    treeview绑定xml<?xml version="1.0" encoding="GB2312"?>
    <root name="石牌街道">
        <juwei name="瑞华居委">
            <jianzhu smid="6" name="瑞华花园1栋">
              <louceng name="1楼">
                <fjname>101室</fjname>
                <fjname>102室</fjname>
                <fjname>103室</fjname>
                <fjname>104室</fjname>
              </louceng>
              <louceng name="2楼">
                <fjname>201室</fjname>
                <fjname>202室</fjname>
                <fjname>203室</fjname>
                <fjname>204室</fjname>
              </louceng>
            </jianzhu>
          <jianzhu smid="7" name="瑞华花园2栋">
            <louceng name="1楼">
              <fjname>101室</fjname>
              <fjname>102室</fjname>
              <fjname>103室</fjname>
              <fjname>104室</fjname>
            </louceng>
            <louceng name="2楼">
              <fjname>201室</fjname>
              <fjname>202室</fjname>
              <fjname>203室</fjname>
              <fjname>204室</fjname>
            </louceng>
          </jianzhu>
        </juwei>
      <juwei name="金帝居委">
        <jianzhu smid="4" name="金帝花园1栋">
          <louceng name="1楼">
            <fjname>101室</fjname>
            <fjname>102室</fjname>
            <fjname>103室</fjname>
            <fjname>104室</fjname>
          </louceng>
          <louceng name="2楼">
            <fjname>201室</fjname>
            <fjname>202室</fjname>
            <fjname>203室</fjname>
            <fjname>204室</fjname>
          </louceng>
        </jianzhu>
      </juwei>
      <juwei name="朝阳居委">
        <jianzhu smid="5" name="金帝花园2栋">
          <louceng name="1楼">
            <fjname>101室</fjname>
            <fjname>102室</fjname>
            <fjname>103室</fjname>
            <fjname>104室</fjname>
          </louceng>
          <louceng name="2楼">
            <fjname>201室</fjname>
            <fjname>202室</fjname>
            <fjname>203室</fjname>
            <fjname>204室</fjname>
          </louceng>
        </jianzhu>
      </juwei>
    </root>
     
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Xml;
    public partial class fangwuguanli : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindTreeView(tvRes);
            }
        } 
        /// <summary>
        /// 绑定TreeView控件
        /// </summary>
        /// <param name="treeview">TreeView控件</param> 
        protected void BindTreeView(TreeView treeview)
        {
            //利用xmldoc对象读取xml文件
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(Server.MapPath("./xml/fangwu.xml"));
            //读取根节点
            XmlElement xmlele = xmldoc.DocumentElement;
            TreeNode tn = new TreeNode();
            tn.Text = xmlele.Attributes["name"].Value;
            //获取根节点下的所有节点
            XmlNodeList xmlnl = xmlele.ChildNodes;
            //递归遍历节点 
            TreeNode tn_nodes = null;
            foreach (XmlNode xmlnode in xmlnl)
            {
                if (xmlnode.HasChildNodes)
                {
                    tn_nodes = new TreeNode();
                    tn_nodes.Text = xmlnode.Attributes["name"].Value;
                    GetNodes(xmlnode, tn_nodes);
                    tn.ChildNodes.Add(tn_nodes);
                }
            }
            tvRes.Nodes.Add(tn);
        }
        /// <summary>
        /// //递归遍历节点
        /// </summary>
        /// <param name="xmlnode">当前xml文件中的节点</param>
        /// <param name="tn">treeview中当前节点</param>
        public void GetNodes(XmlNode xmlnd,TreeNode tn)
        { 
            //获取根节点下的所有节点
            XmlNodeList xmlnl = xmlnd.ChildNodes;
            TreeNode tn_nodes = null; 
            foreach (XmlNode xmlnode in xmlnl)
            {
                if (xmlnode.ChildNodes.Count > 1)
                {
                    tn_nodes = new TreeNode(); 
                    tn_nodes.Text = xmlnode.Attributes["name"].Value;
                    XmlElement xml=(XmlElement)xmlnode;
                    if (xml.HasAttribute("smid"))
                    {
                        tn_nodes.Text = "<a onclick=\"parent.parent.dptMain.DivOnclickQT('" + xmlnode.Attributes["name"].Value + "','113.335868856645','23.1333050848636','"
                            + xmlnode.Attributes["name"].Value + "')\" style=\"cursor: hand\">" + xmlnode.Attributes["name"].Value + "</a>";
                    }
                    GetNodes(xmlnode, tn_nodes);
                    tn.ChildNodes.Add(tn_nodes);
                }
                else
                {
                    tn_nodes = new TreeNode();
                    tn_nodes.Text = xmlnode.FirstChild.Value ;
                    tn.ChildNodes.Add(tn_nodes);
                }
            } 
        }
    }
      

  4.   

    使用XmlDataSource 很方便的。
      

  5.   

    treeview绑定xml的例子(必须是带超链接的,谢谢),