У меня есть следующий XML:
<questions>
<question text="This is a test question?">
<answer value="Yes">
<requirement articleId="2899"/>
</answer>
<answer value="No">
<requirement articleId="2899"/>
</answer>
</question>
</questions>
И у меня есть следующая разметка на моей странице ASPX:
<asp:Repeater ID="rptQuestions" runat="server" DataSourceID="xdsQuestions">
<ItemTemplate>
<p>
<asp:Label ID="lblText" runat="server" Text='<%# Eval("text") %>' />
</p>
<div>
<asp:RadioButtonList ID="rblAnswers" runat="server" RepeatDirection="Horizontal"
RepeatLayout="Flow" AutoPostBack="true" OnSelectedIndexChanged="rblAnswers_SelectedIndexChanged"
DataSource='<%# XPathSelect("answer") %>' DataTextField="value" DataValueField="value" />
</div>
</ItemTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="xdsQuestions" runat="server" DataFile="~/App_Data/QA.xml"
XPath="./questions/question" />
Пока что единственный способ заставить это работать - это переместить атрибут 'value' узла 'answer' в элемент (например, <value>Yes</value>
) и связать его с InnerText. свойство узла 'answer', поскольку XPathSelect возвращает коллекцию XmlElement. Это не то, как я хочу, потому что, если любой из других дочерних узлов «ответа» (например, узла «требования») также имеет InnerText, он объединяется вместе со «значением» в ListItems RadioButtonList .
Любые предложения о том, как связать мой RadioButtonList без изменения XML?