2012-03-09 127 views
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的任何建議?

回答

0

內,您的單選按鈕列表,您的數據源更改爲以下:

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

+0

真棒!注意:我還必須設置DataTextField =「Value」和DataValueField =「Value」 – tjc59 2012-03-09 22:30:07