Pregunta

Tengo el siguiente 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>

y tengo el siguiente marcado en mi página 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" />

Hasta ahora, la única forma en que lo he podido trabajar es mover el atributo 'valor' del nodo 'Respuesta' en el elemento (como este: <value>Yes</value>) y se une a la propiedad 'INTERTTEXT' deEl nodo 'Respuesta', ya que XpathSelect está devolviendo una colección de XMlelement.Esto no es cómo quiero hacerlo, porque si alguno de los otros nodos infantiles de 'Respuesta' (como el nodo 'Requisito') también tiene texto INTERTET, se concatena junto con el 'valor' en los listites de la lista de radiobutton..

¿Alguna sugerencia sobre cómo atar mi lista de radiobutontry sin cambiar el XML?

¿Fue útil?

Solución

Dentro de su lista de radiobutones, cambie su DataSource a lo siguiente:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top