Question

J'ai le XML suivant :

<questions>
<question text="This is a test question?">
<answer value="Yes">
 <requirement articleId="2899"/>
</answer>
<answer value="No">
  <requirement articleId="2899"/>
</answer>
</question>
</questions>

Et j'ai le balisage suivant dans ma page 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" />

Jusqu'à présent, la seule façon pour que cela fonctionne est de déplacer l'attribut « valeur » du nœud « réponse » dans l'élément (comme ceci : <value>Yes</value>) et liez-vous à la propriété 'InnerText' du nœud 'answer', puisque XPathSelect renvoie une collection de XmlElement.Ce n'est pas ainsi que je veux procéder, car si l'un des autres nœuds enfants de « réponse » (tels que le nœud « exigence ») a également InnerText, il est concaténé avec « valeur » dans les ListItems de RadioButtonList. .

Des suggestions sur la façon de lier ma RadioButtonList sans modifier le XML ?

Était-ce utile?

La solution

Dans votre RadioButtonList, modifiez votre DataSource comme suit :

DataSource='<%# XPathSelect("answer/@value") %>'

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top