私は、ASP.Net ListViewのListViewDataItemsを繰り返し処理しようとしており、ListView.ExtractItemValuesを使用してDataBoundControlsから値を取得しています。これはITextControlsでうまく動作しますが、RadioButtonListから選択項目を取得するのが難しいです。ここでASP.Net ListView.ExtractItemValuesを使用して、ListViewDataItemのRadioButtonListで選択した項目を取得するにはどうすればよいですか?
は私のマークアップです:
<asp:ListView ID="lvQuiz" runat="server">
<LayoutTemplate>
<fieldset>
<ul>
<asp:PlaceHolder ID="itemplaceholder" runat="server"></asp:PlaceHolder>
</ul>
</fieldset>
<asp:Button ID="cmdSubmit" runat="server" Text="Submit" OnClick="cmdSubmit_Click" />
</LayoutTemplate>
<ItemTemplate>
<li>
<fieldset>
<legend>
<asp:Label ID="lblQuestionText" runat="server" Text='<%# Bind("Question.QuestionText") %>' />
</legend>
<asp:RadioButtonList ID="rblResponse" runat="server" DataTextField="ResponseText" DataValueField="Id"
DataSource='<%# Bind("Question.PossibleResponses") %>'>
</asp:RadioButtonList>
</fieldset>
</li>
</ItemTemplate>
そして、ここでは、私は値を抽出しようとしているコードです:
var Q = (Quiz)Session["Quiz"];
foreach (var item in lvQuiz.Items)
{
var itemValues = new OrderedDictionary();
lvQuiz.ExtractItemValues(itemValues, item, true);
var myQuestion = Q.UserResponses.Keys
.Where(x => x.QuestionText == itemValues["Question.QuestionText"])
.Single();
Q.UserResponses[myQuestion] = itemValues["Question.PossibleResponses"].SelectedItem
}
私の問題はその最後の行です。 "Question.PossibleResponses"はRadioButtonListにバインドされていますが、itemValues ["Question.PossibleResponses"]の値はすべての自分のRadioButtonListのオプションのリストを返します。ユーザーがどのユーザーを選択したかはどのようにしてわかりますか?