<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" 
    Height="131px" Width="201px">
    <Nodes>
        <asp:TreeNode Text="新建节点" Value="新建节点">
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
        </asp:TreeNode>
    </Nodes>
</asp:TreeView><asp:XmlDataSource ID="XmlDataSource1" runat="server" 
    DataFile="~/ascx/XMLFile.xml" >
    <Transform>
    </Transform>
</asp:XmlDataSource>---ascx/XMLFile.xml"
<Root name="root" title="分类">
  <Node Value="aspx/ConsumeClass.aspx" Text="分类"/>
  <Node Value="aspx/ConsumeItem.aspx" Text="明细"/>
  <Node Value="aspx/ConsumeList.aspx" Text="列表"/>
</Root>怎么绑定  我想要按树状显示绑定到TreeView1上

解决方案 »

  1.   

    <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" 
        Height="131px" Width="201px" TreeNodeSrc="http://localhost/ascx/XMLFile.xml">
      

  2.   

    不对
    用的是 System.web.ui.webcontrol.treeview
      

  3.   

    不能自定义xml的,要使用必须用SiteMap那种格式的才能解析,
    要不你用c#解析xml来绑定
    只能用下面这种节点的格式<?xml version="1.0" encoding="utf-8" ?>
    <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
      <siteMapNode title="Home"  description="">
        <siteMapNode title="Admin" description="">
          <siteMapNode title="发单" description="">
            <siteMapNode url="~/NewBusiness.aspx" title="取件发单"  description="" />
            <siteMapNode url="~/NewSignin.aspx" title="派件发单"  description="" />
            <siteMapNode url="~/Default.aspx" description="" />
          </siteMapNode>
          <siteMapNode title="取件查看" description="">
            <siteMapNode url="~/Business.aspx" title="已上传的有单取件信息"  description="" />
            <siteMapNode url="~/AbnormalBusiness.aspx" title="已上传的取件异常信息"  description="" />
            <siteMapNode url="~/WDBusiness.aspx" title="已上传的无单取件信息"  description="" />
          </siteMapNode>
          <siteMapNode title="派件查看" description="">
            <siteMapNode url="~/Signin.aspx" title="已上传的有单派件签收信息"  description="" />
            <siteMapNode url="~/AbnormalSignin.aspx" title="已上传的有单派件异常信息"  description="" />
            <siteMapNode url="~/WDSignin.aspx" title="已上传的无单派件签收信息"  description="" />
            <siteMapNode url="~/AbnormalWDSignin.aspx" title="已上传的无单派件异常信息"  description="" />
          </siteMapNode>
          <siteMapNode title="统计信息" description="">
            <siteMapNode url="~/Stat.aspx" title="取派员信息" description="" />
          </siteMapNode>
        </siteMapNode>
      </siteMapNode>
    </siteMap>
      

  4.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TreeView ID="TreeView1" Target="mainFrame" ForeColor="#215dc6" NodeIndent="5" runat="server" ShowLines="true" DataSourceID="XmlDataSource1" ExpandDepth="1" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" OnDataBound="TreeView1_DataBound" >
            </asp:TreeView>
        </ContentTemplate>
          </asp:UpdatePanel>
            
            <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/XMLFile.xml">
            </asp:XmlDataSource>TreeNodeBinding root = new TreeNodeBinding();
                root.DataMember = "root";
                root.ValueField = "name";
                root.ImageUrlField = "title";
                this.TreeView1.DataBindings.Add(root);
                TreeNodeBinding subroot = new TreeNodeBinding();
                subroot.DataMember = "";
                subroot.ValueField = "";
                subroot.TextField = "";
                subroot.ImageUrlField = "";
                this.TreeView1.DataBindings.Add(subroot);
                TreeNodeBinding content = new TreeNodeBinding();
                content.DataMember = "Node";
                content.ValueField = "#InnerText";
                content.NavigateUrlField = "url";
                this.TreeView1.DataBindings.Add(content);
      

  5.   


    //树形菜单绑定
        private void BindTreeView(TreeNodeCollection Nds, int IDStr)
        {
            OleDbConnection sqlConn = DB.CreateConn();        sqlConn.Open();
            OleDbCommand sqlCmd = new OleDbCommand("select * from Tree where ParentNodesID=" + IDStr.ToString() + " order by ShunXu asc,PerNeed asc", sqlConn);
            OleDbDataReader sqlReader = sqlCmd.ExecuteReader();        while(sqlReader.Read())
            {
                if (IDStr == 0)
                {
                    TreeNode OrganizationNode = new TreeNode();
                    OrganizationNode.Text = " " + sqlReader["NodeTitle"].ToString();
                    OrganizationNode.Value = sqlReader["TreeID"].ToString();
                    int strId = int.Parse(sqlReader["TreeID"].ToString());
                    OrganizationNode.ImageUrl = sqlReader["ImageUrl"].ToString();
                    OrganizationNode.SelectAction = TreeNodeSelectAction.Expand;
                    OrganizationNode.Expanded = false;
                    Nds.Add(OrganizationNode);
                    BindTreeView(Nds[Nds.Count - 1].ChildNodes, strId);
                }
                else
                {
                    TreeNode OrganizationNode = new TreeNode();
                    OrganizationNode.Text = " " + sqlReader["NodeTitle"].ToString();
                    OrganizationNode.Value = sqlReader["TreeID"].ToString();
                    int strId = int.Parse(sqlReader["TreeID"].ToString());
                    OrganizationNode.ImageUrl = sqlReader["ImageUrl"].ToString();
                    OrganizationNode.NavigateUrl = sqlReader["LinkUrl"].ToString();
                    OrganizationNode.Target = "rform";
                    OrganizationNode.Expanded = false;
                    Nds.Add(OrganizationNode);
                    BindTreeView(Nds[Nds.Count - 1].ChildNodes, strId);
                }
            }
    数据库里把节点名称、页面地址、节点图标 、顺序 等存进去就可以了
      

  6.   

    哎,都忘 了,以前是这么写的:<asp:TreeView ID="TreeView2" runat="server" DataSourceID="XmlDataSource1" ImageSet="BulletedList4">
                        <DataBindings>
                            <asp:TreeNodeBinding DataMember="首页" NavigateUrlField="url" TextField="#Name" />
                            <asp:TreeNodeBinding DataMember="新闻首页" NavigateUrlField="url" TextField="#Name" />
                            <asp:TreeNodeBinding DataMember="添加新闻" NavigateUrlField="url" TextField="#Name" />
                            <asp:TreeNodeBinding DataMember="编辑新闻" NavigateUrlField="url" TextField="#Name" />
                            <asp:TreeNodeBinding DataMember="产品首页" NavigateUrlField="url" TextField="#Name" />
                            <asp:TreeNodeBinding DataMember="添加产品" NavigateUrlField="url" TextField="name" />
                        </DataBindings>
                    </asp:TreeView>
                    <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/tree.xml"></asp:XmlDataSource>xml:<?xml version="1.0" encoding="utf-8" ?>
    <首页 url="~/Default.aspx">
      <新闻首页 url="~/newsindex.aspx">
        <添加新闻 url="News/add.aspx"/>
        <编辑新闻 url="News/edit.aspx"/>
      </新闻首页>
      <产品首页 url="Product/Default.aspx">
        <添加产品 url="Product/add.aspx" name="添加产品"/>  </产品首页>
      
    </首页>
      

  7.   

    有两种方法,一是直接界面操作,二是在后台用代码实现。
    <Root name="root" title="分类">
      <Node Value="aspx/ConsumeClass.aspx" Text="分类"/>
      <Node Value="aspx/ConsumeItem.aspx" Text="明细"/>
      <Node Value="aspx/ConsumeList.aspx" Text="列表"/>
    </Root>一:单击treeview上的小三角形,再单击编辑treenode数据绑定,打开treeview databindings 编辑器对话框;datamember 添node;navigateurlfield 填value ;textfield 填 text;
    二:
    在页面加载事件中写:
    //根节点
            TreeNode tnroot = new TreeNode();
            tnroot.Text = "分类";
            tnroot.Value = "Root";
            tnroot.NavigateUrl = "~/你的链接";        //父节点
            TreeNode tnparent = new TreeNode();
            tnparent.Text = "Text";
            tnparent.Value = "Node";
            tnparent.NavigateUrl = "aspx/ConsumeClass.aspx";
            tnroot.ChildNodes.Add(tnparent);
            //子节点以此类推
      

  8.   

    对了,还忘了一个关键的代码:
    treeview1.nodes.add(tnroot);
    treeview1.expandall();