2012-07-27 44 views
0

XML:TreeView控件绑定到XML文件

<Parent Name="Jodi"> 
<Children Name="xxx" age="20"> 
<Children Name="zzz" age="21"> 
</Parent> 

<Parent Name="John"> 
<Children Name="aaa" age="18"> 
<Children Name="bbb" age="17"> 
</Parent> 

我想上面的XML文件绑定到我的asp.net页面上的一个TreeView;

ASP.Net:

<asp:XmlDataSource ID="DataSource1" runat="server" DataFile="C:/Parents.xml"></asp:XmlDataSource> 
<asp:TreeView ID="tvParents" runat="server"> 
<DataBindings> 
<asp:TreeNodeBinding DataMember="Parent" TextField="#InnerText" /> 
<asp:TreeNodeBinding DataMember="Children" TextField="#InnerText" /> 
</DataBindings> 
</asp:TreeView> 

C#

protected void Page_Load(object sender, EventArgs e) 
    { 

     tvParents.DataBind(); 
    } 

我试图绑定到树视图,如:

Jodi 
    XXX 
    ZZZ 
John 
    aaa 
    bbb 

我的树视图不显示在页面上,任何人都可以看看并指导我吗?

+0

在您的xml子标记中是Children和您在您的treeview数据绑定中提到的DataMember =“Child”。这没有错? – 2012-07-27 16:06:56

+0

@WaqarJanjua:这是一个错字,刚刚更新。 – Macnique 2012-07-27 16:16:47

回答

0

您必须添加的DataSourceID在树形属性

<asp:XmlDataSource ID="DataSource1" runat="server" DataFile="C:/Parents.xml"></asp:XmlDataSource> 
<asp:TreeView ID="tvParents" runat="server" DataSourceId ="DataSource1"> 
    <DataBindings> 
    <asp:TreeNodeBinding DataMember="Parent" TextField="#InnerText" /> 
    <asp:TreeNodeBinding DataMember="Child" TextField="#InnerText" /> 
    </DataBindings> 
</asp:TreeView> 
+0

我做到了。但我能够看到元素不是元素的值 – Macnique 2012-07-27 16:01:29

+0

添加值字段 – 2012-07-27 16:44:37

0

您的IIS可能无法访问“C:/Parents.xml”。您最好使用Server.MapPath()并将该文件放在ASPX页面所在的位置。

+0

:我的IIS有权访问该文件。 – Macnique 2012-07-27 15:49:06

0

我遇到类似的东西走到今天 - 你试过在属性指着孩子的价值领域?

<asp:XmlDataSource ID="DataSource1" runat="server" DataFile="C:/Parents.xml"> 
</asp:XmlDataSource> 
<asp:TreeView ID="tvParents" runat="server"> 
<DataBindings> 
<asp:TreeNodeBinding DataMember="Parent" TextField="#InnerText" /> 
<asp:TreeNodeBinding DataMember="Children" ValueField="Name" TextField="#InnerText" /> 
</DataBindings> 
</asp:TreeView>