2012-07-27 66 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>