我有一個包含一個DataList和它的ItemTemplate裏面包含一個單選按鈕列表asp.net DataList控件總是不SELECTED
這裏一個asp.net是我的ASPX代碼:
<asp:DataList ID="dtlQuestions" runat="server" RepeatDirection="Vertical" DataKeyField="ID" OnItemDataBound="dtlQuestions_ItemDataBound">
<ItemTemplate>
<asp:Label ID="q" runat="server" Text='<%# Eval("Question") %>'></asp:Label>
<asp:RadioButtonList ID="dtlAnswers" runat="server" ValidationGroup='Bla' RepeatDirection="Horizontal" RepeatColumns="5" CssClass="radioButtonList">
</asp:RadioButtonList>
</ItemTemplate>
</asp:DataList>
在後面的代碼中,我有一個「Questons」列表,其中每個項目都包含項目列表。 我將問題綁定到Datalist,問題中的每個答案綁定到radioButtonList。
下面是C#代碼:
protected void dtlQuestions_ItemDataBound(object sender, DataListItemEventArgs e)
{
SurveyQuestion drv = e.Item.DataItem as SurveyQuestion;
RadioButtonList RadioButtonList1 = (RadioButtonList)e.Item.FindControl("dtlAnswers");
foreach (QuestionAnswer a in drv.QuestionAnswers)
{
ListItem i = new ListItem();
i.Text = a.Answer;
i.Value = a.Answer;
RadioButtonList1.Items.Add(i);
}
}
現在我的問題是,當點擊一個按鈕我要回去和閱讀每一個單選按鈕,看看它是否被選中與否,我能夠循環通過單選按鈕但所有都顯示不選。
這裏是按鈕提交點擊
protected void btnSubmit_Click(object sender, EventArgs e)
{
DataList dtlQuestions = Page.FindControl("dtlQuestions") as DataList;
foreach (DataListItem question in dtlQuestions.Items)
{
RadioButtonList rdList = question.FindControl("dtlAnswers") as RadioButtonList;
foreach (ListItem answer in rdList.Items)
{
bool isSelected = answer.Selected;
}
}
}
你能說明你實際上是如何將數據綁定到DataList的嗎? –
Ohhhh我發現了。在Page_Loadi上向DataList的DataSource添加了一個questons列表。 我的問題是我沒有添加一個if(!Page.IsPostBack)到那個部分,所以每次按鈕被點擊時它重新綁定數據並丟失我選擇的值。 :) – Nisho
:)這可能是asp.net中最常見的問題 –