0
我有下面的XML:单选按钮列表里面直放站必然的XmlDataSource
<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" />
到目前为止,唯一的办法我已经能够让这个工作就是将'answer'节点的'value'属性移动到元素中(像这样:<value>Yes</value>
)并且绑定到'answer'节点的'InnerText'属性,因为XPathSelect返回的是的XmlElement。这不是我想要去做的,因为如果'answer'的其他任何子节点(例如'require'节点)也具有InnerText,它将与RadioButtonList的ListItems中的'value'一起连接。
有关如何绑定我的RadioButtonList而不更改XML的任何建议?
真棒!注意:我还必须设置DataTextField =“Value”和DataValueField =“Value” – tjc59 2012-03-09 22:30:07