2017-02-10 8 views
0

私はaspリピータの中にあるラジオボタンリストを持っています。データソースasp.netでラジオボタンリスト応答を取得

<asp:Repeater runat="server" ID="surveyRepeater"> 
    <ItemTemplate> 
     <h3><%#((Half_Blue.Survey_files.survey_classes.surveyQuestion)Container.DataItem).questionNum%> 
       . <%#((Half_Blue.Survey_files.survey_classes.surveyQuestion)Container.DataItem).question%> 
     </h3> 
     <asp:RadioButtonList ID="surveyRadioList" 
      DataTextField="questionText" 
      DataValueField="valueOfQuestion" runat="server" 
      DataSource="<%#((Half_Blue.Survey_files.survey_classes.surveyQuestion)Container.DataItem).answerOptions %>" 
      RepeatDirection="Vertical"> 
     </asp:RadioButtonList> 
    </ItemTemplate> 
</asp:Repeater> 

これはラジオボタンのリストを正しく表示しますが、コード内のレスポンスを取得する方法がわかりません。

私はこれを行うことによって、ラジオボタンのリストを取得することができます。

foreach (RepeaterItem item in surveyRepeater.Items) 
{ 
    // Checking the item is a data item 
    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) 
    { 
     var rdbList = item.FindControl("surveyRadioList") as RadioButtonList; 
     if (rdbList != null) 
     { 
      retList.Add(rdbList.SelectedValue); 
     } 
    } 
} 

しかし、それは、ラジオボタンリストのすべての8を発見していても、選択された値が常に単に空「」の文字列です。選択したインデックスは、選択したオプションに関係なく常に-1です。

ご協力いただければ幸いです。

答えて

1

あなたはすべてのポストバックでRepeaterを再バインドしていると思います。あなたはIsPostBack小切手の中に包んでおく必要があります。

if (!Page.IsPostBack) 
{ 
    surveyRepeater.DataSource = Common.LoadFromDB(); 
    surveyRepeater.DataBind(); 
} 

ラジオボタンリストが再作成され、その選択が失われます。

+0

そうだった。ああ私の神はそれを探して3時間:Pありがとう –

関連する問題