2014-09-23 3 views
1

У меня есть gridview, в котором у меня есть 6 radionbuttons. На кнопку отправки нажмите кнопку Мне нужно определить, какой из radiobutton выбран в каждой строке grid. Сейчас им, используя код ниже:Идентичность, переключатель которой выбран в GridViewRow

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("OrderID"); 
     dt.Columns.Add("QuestionID"); 
     dt.Columns.Add("Rating"); 
     foreach (GridViewRow gr in grdSurvey.Rows) 
     { 
      DataRow dr = dt.NewRow(); 
      dr["QuestionID"] = ((HiddenField)gr.FindControl("hfQuestionID")).Value; 
      dr["OrderID"] = ViewState["_ORDERID"].ToString(); 
      if (((RadioButton)gr.FindControl("rbSD")).Checked) 
      { 
       dr["Rating"] = "1"; 
      } 
      else if (((RadioButton)gr.FindControl("rbSD")).Checked) 
      { 
       dr["Rating"] = "2"; 
      } 
      else if (((RadioButton)gr.FindControl("rbDS")).Checked) 
      { 
       dr["Rating"] = "3"; 
      } 
      else if (((RadioButton)gr.FindControl("rbNAND")).Checked) 
      { 
       dr["Rating"] = "4"; 
      } 
      else if (((RadioButton)gr.FindControl("rbAS")).Checked) 
      { 
       dr["Rating"] = "5"; 
      } 
      else if (((RadioButton)gr.FindControl("rbSA")).Checked) 
      { 
       dr["Rating"] = "6"; 
      } 
      else if (((RadioButton)gr.FindControl("rbNA")).Checked) 
      { 
       dr["Rating"] = "0"; 
      } 
      dt.Rows.Add(dr); 
     } 
     int Res = InsertSurveyResponse(dt); 
     if (Res > 0) 
     { 
      Response.Write(Res + " Response Submitted."); 
     } 
    } 

Передняя часть находится ниже:

<div id="divForm" runat="server"> 
    <table width="80%" style="text-align:center;"> 
     <tr> 
      <td>Your feedback is important and we promise it will take less than a minute of your time. All you have to do is – read the questions below and select the rating that you feel best describes your experience with us. 
      </td> 
     </tr> 
     <tr> 
      <td>Kindly give us your feedback below 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <asp:gridview id="grdSurvey" runat="server" autogeneratecolumns="false" clientidmode="static"> 
        <Columns> 
         <asp:TemplateField HeaderText="Question"> 
          <ItemTemplate> 
           <asp:HiddenField ID="hfQuestionID" runat="server" Value='<%#Eval("QuestionID") %>'></asp:HiddenField> 
           <asp:Label ID="lblQuestion" runat="server" Text='<%#Eval("Question") %>'></asp:Label> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Strongly Disagree"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbSD" runat="server" GroupName="Survey" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Disagree Somewhat"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbDS" runat="server" GroupName="Survey" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Neither Agree nor disagree"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbNAND" runat="server" GroupName="Survey" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Agree Somewhat"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbAS" runat="server" GroupName="Survey" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Strongly Agree"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbSA" runat="server" GroupName="Survey" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
         <asp:TemplateField HeaderText="Not applicable"> 
          <ItemTemplate> 
           <asp:RadioButton ID="rbNA" runat="server" GroupName="Survey" Checked="true" /> 
          </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:gridview> 
      </td> 
     </tr> 
     <tr> 
      <td align="center"> 
       <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /> 
      </td> 
     </tr> 
    </table> 
</div> 

мне нужно избежать, если еще, что я использую на кнопку отправить, также я не могу использовать радиокнопку список. Пожалуйста помоги. Мне нужен код на стороне сервера. Нет jquery или javascript.

+0

Используйте переключатель .. Case вместо If..ElseIf .. –

ответ

0

Добавить ниже скрипт на вашей странице

<script type="text/javascript"> 
function GetAge() { 
    var Row1 = $("input:radio[id$='rbSD']:checked").val(); 
    var Row2 = $("input:radio[id$='rbDS']:checked").val(); 
    var Row3 = $("input:radio[id$='rbNAND']:checked").val(); 
    var Row4 = $("input:radio[id$='rbAS']:checked").val(); 
    var Row5 = $("input:radio[id$='rbSA']:checked").val(); 
    var Row6 = $("input:radio[id$='rbNA']:checked").val(); 

} 
</script> 

надстройку "OnClientClick" СеЬАде()»событие кнопки отправить

<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" OnClientClick"GetAge()" /> 
1

Что-то вроде:

var selectedButton = Master.FindControl("grdSurvey").Controls.OfType<RadioButton>().FirstOrDefault(r => r.Checked); 
Смежные вопросы