問候!將DropDownList數據源綁定到XPathSelect
我有一些這樣的XML:
<Root>
<MainSection>
<SomeNode>Some Node Value</SomeNode>
<SomeOtherNode>Some Other Node Value</SomeOtherNode>
<Areas>
<Area someattribute="aaa" name="Alpha" value="0" />
<Area someattribute="bbb" name="Beta" value="1" />
<Area someattribute="ddd" name="Delta" value="2" />
</Areas>
</MainSection>
</Root>
我有我的web窗體上的FormView控件中,許多價值觀的約束。我想向區子節點綁定到一個DropDownList像這樣:
<asp:FormView ID="MyFormView" runat="server" DataSourceID="MyXmlDataSource">
<ItemTemplate>
<h1><%# XPath("SomeNode")%></h1>
<asp:Label ID="MyLabel" runat="server" AssociatedControlID="MyDdl" Text='<%# XPath("SomeOtherNode")%>' />
<asp:DropDownList ID="MyDdl" runat="server" DataSource='<%# XPathSelect("Areas/*") %>' DataTextField="name" DataValueField="value"></asp:DropDownList>
</ItemTemplate>
</asp:FormView>
<asp:XmlDataSource ID="MyXmlDataSource" runat="server" XPath="Root/MainSection" />
不幸的是,而不是看到我所期待的下拉列表中的數據,我看到3項以「區」爲文字和沒有值。
我知道我的XML是好的,因爲出於測試目的,我想在頁面上扔Repeater控件,像這樣:
<asp:Repeater ID="MyRepeater" runat="server" DataSource='<%# XPathSelect("Areas/*") %>'>
<ItemTemplate>
<%# XPath("@name") %> - <%# XPath("@value") %><br />
</ItemTemplate>
</asp:Repeater>
這工作得很好。
是否有什麼,我綁定到下拉列表時,可能與DataTextField和DataValueField屬性做錯了?
否。這樣做會導致「DataBinding:'System.Xml.XmlElement'不包含名稱爲」@name「異常的屬性。 – Bullines 2008-12-10 20:14:12