2012-05-10 60 views
1

我有gridview的其中包含60行和每行有4個單選按鈕選項(選擇的任何一個)。要運行該代碼,在提交按鈕上寫下代碼如下。我沒有工作。 我的設計圖:存儲GridView控件的多重選擇的單選按鈕的?

<asp:GridView ID="gvSurvey" runat="server" CellPadding = "4" OnRowDataBound ="gvSurvey_RowDataBound" BorderWidth ="2" 
AutoGenerateColumns="False" EmptyDataText="No data Available" GridLines="None" 
HorizontalAlign="Center" ForeColor="#333333" Font-Names="Verdana" ShowFooter="True"> 
<RowStyle BackColor="White" /> 
<Columns> 
<asp:BoundField DataField="HEADER" HeaderText="Description" ItemStyle-HorizontalAlign="Left" 
FooterStyle-HorizontalAlign="Left" > 
<ItemStyle HorizontalAlign="Left" /> 
</asp:BoundField> 
<asp:BoundField DataField="QTN_NO" HeaderText="Description" ItemStyle-HorizontalAlign="Left" 
FooterStyle-HorizontalAlign="Left" > 
<ItemStyle HorizontalAlign="Left" /> 
</asp:BoundField> 
<asp:BoundField DataField="SQTN_NO" HeaderText="Description" ItemStyle-HorizontalAlign="Left" 
FooterStyle-HorizontalAlign="Left" > 
<ItemStyle HorizontalAlign="Left" /> 
</asp:BoundField> 
<asp:TemplateField Visible="true" HeaderText ="Strongly Disagree"> 
<ItemTemplate> 

<asp:RadioButton ID="rdbtn1" runat ="server" GroupName ="MyRadioGroup"/> 
<%-- <asp:CustomValidator ID="cvRadioButtonGroup" runat="server" ErrorMessage="* make a selection" onservervalidate="cvRadioButtonGroup_ServerValidate" /> --%> 
    <%--<input name="MyRadioButton1" type ="radio" value = "'<%# Eval("SQTN_NO") %>'" />--%> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField Visible="true" HeaderText ="Agree"> 
<ItemTemplate> 
    <asp:RadioButton ID="rdbtn2" runat ="server" GroupName ="MyRadioGroup"/> 
    <%--<asp:CustomValidator ID="cvRadioButtonGroup" runat="server" ErrorMessage="* make a selection" onservervalidate="cvRadioButtonGroup_ServerValidate" /> --%> 
<%--<input name="MyRadioButton2" type ="radio" value = "'<%# Eval("SQTN_NO") %>'" />--%> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField Visible="true" HeaderText ="Disagree"> 
<ItemTemplate> 
    <asp:RadioButton ID="rdbtn3" runat ="server" GroupName ="MyRadioGroup"/> 
    <%-- <asp:CustomValidator ID="cvRadioButtonGroup" runat="server" ErrorMessage="* make a selection" onservervalidate="cvRadioButtonGroup_ServerValidate" /> --%> 
    <%--<input name="MyRadioButton3" type ="radio" value = "'<%# Eval("SQTN_NO") %>'" />--%> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField Visible="true" HeaderText ="Strongly Agree"> 
<ItemTemplate> 
    <asp:RadioButton ID="rdbtn4" runat ="server" GroupName ="MyRadioGroup"/> 
     <%-- <asp:CustomValidator ID="cvRadioButtonGroup" runat="server" ErrorMessage="* make a selection" onservervalidate="cvRadioButtonGroup_ServerValidate" /> --%> 
<%-- <input name="MyRadioButton4" type ="radio" value = "'<%# Eval("SQTN_NO") %>'" />--%> 
</ItemTemplate> 

</asp:TemplateField> 
</Columns> 
<FooterStyle BackColor="#507CD1" ForeColor="White" Font-Bold="True" /> 
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> 
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> 
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
<EditRowStyle BackColor="#2461BF" /> 
<AlternatingRowStyle BackColor="White" /> 

</asp:GridView> 

C#

for (i = 0; i < gvSurvey.Rows.Count; i++) 
      { 
       RadioButton rdbtn1 = (RadioButton)gvSurvey.Rows[i].Cells[3].FindControl("rdbtn1"); 
       RadioButton rdbtn2 = (RadioButton)gvSurvey.Rows[i].Cells[4].FindControl("rdbtn2"); 
       RadioButton rdbtn3 = (RadioButton)gvSurvey.Rows[i].Cells[5].FindControl("rdbtn3"); 
       RadioButton rdbtn4 = (RadioButton)gvSurvey.Rows[i].Cells[6].FindControl("rdbtn4"); 


      //  RadioButton rdbtn1=(RadioButton) gvSurvey.Rows[i].ClientID 

       qtn_no = dtSurvey.Rows[i]["QTN_NO"].ToString(); 
       sqtn_no = dtSurvey.Rows[i]["SQTN_NO"].ToString(); 

       if (rdbtn1.Checked) 
       { 
        rdbtn1.Text = "1"; 
        lblMsg.Text = nominationsBiz.SaveSuggestion(ticketNo.ToString(), qtn_no, sqtn_no, rdbtn1.Text); 
       } 

回答

2

請通過下面的代碼,你會發現解決方案

// It will be on your submit button click 
    protected void getPinCode() 
    { 
     foreach (GridViewRow grdRows in gvSurvey.Rows) 
     { 
      RadioButton rbt1 = (RadioButton)grdRows.FindControl("rdbtn1"); 
      RadioButton rbt2 = (RadioButton)grdRows.FindControl("rdbtn2"); 
      RadioButton rbt3 = (RadioButton)grdRows.FindControl("rdbtn3"); 
      RadioButton rbt4 = (RadioButton)grdRows.FindControl("rdbtn4"); 

      string Value = RadioValue(rbt1); 
      //Similarly you can do for all radio button 
      if(!string.IsNullOrEmpty(Value)) 
      { 

       lblMsg.Text = nominationsBiz.SaveSuggestion(ticketNo.ToString(), qtn_no, sqtn_no, Value); 
      } 

     } 
    } 


    protected string RadioValue(RadioButton Rbtlst) 
    { 
     string Value = ""; 

     if (Rbtlst.Checked == true) 
     { 
      Value = Rbtlst.Text; 
     } 
     return Value; 
    } 
+0

謝謝你的回覆......我想在你的方式,但它沒有工作。 我得到了控制,但單選按鈕其屬性沒有被設置爲頁面上(就像它表明{檢查= FALSE}雖然它的價值已經頁面上改變) – Niks

+0

我din't得到你真正想要什麼?你想改變單選按鈕的文字,或者您想獲得無線電的純文本button.First你必須關心從中結合電網必須在一側的,如果(!ispost)方法的代碼 – naval

+0

真的感謝 !!如果(!IsPostBack)解決了我的問題..再次感謝 – Niks