如何在asp.net中获取选定的radiobutton值

如何在asp.net中获取选定的radiobutton值,asp.net,vb.net,radio-button,Asp.net,Vb.net,Radio Button,这是我要知道的代码,选择了哪个单选按钮,但在第6行出现了错误对象引用未设置为对象的实例 Dim selected_option As String = "0" For i = 1 To 4 Dim rdbName As String = "rb_option" & i Dim rdb As New RadioButton() rdb = CType(Me.Page.FindControl(rdbNam

这是我要知道的代码,选择了哪个单选按钮,但在第6行出现了错误<代码>对象引用未设置为对象的实例

Dim selected_option As String = "0"
        For i = 1 To 4
            Dim rdbName As String = "rb_option" & i
            Dim rdb As New RadioButton()
            rdb = CType(Me.Page.FindControl(rdbName), RadioButton)
            If rdb.Checked = True Then
                selected_option = i.ToString
                Exit For
            End If
        Next
有4个单选按钮,ID分别为
rb_选项1
rb_选项2
rb_选项3
rb_选项4

更新

<asp:Repeater ID="Repeater1" runat="server">
  <HeaderTemplate>
  <table style="width: 100%; height: 100%; margin-bottom: 50px">
  </HeaderTemplate>
  <ItemTemplate>
  <tr>
  <td style="width: 95%">
  <asp:Label ID="lbl_question" CssClass="frm_label" Text='<%# Eval("QUESTION")%>'runat="server"></asp:Label>
  </td>
  </tr>
  <tr>
  <td>
  </td>
  </tr>
  <tr>
  <td>
  <asp:RadioButton ID="rb_option1" Checked='<%# IF(Eval("ANSWER")="1",true,false) %>' GroupName="answer" Text='<%# Eval("OPT1") %>' CssClass="frm_label" runat="server" />
  </td>
  </tr>
  <tr>
  <td>
  <asp:RadioButton ID="rb_option2" Checked='<%# IF(Eval("ANSWER")="2",true,false) %>' GroupName="answer" Text='<%# Eval("OPT2") %>' CssClass="frm_label" runat="server" />
  </td>
  </tr>
  <tr>
  <td>
  <asp:RadioButton ID="rb_option3" Checked='<%# IF(Eval("ANSWER")="3",true,false) %>' GroupName="answer" Text='<%# Eval("OPT3") %>' CssClass="frm_label" runat="server" />
  </td>
  </tr>
  <tr>
  <td>
  <asp:RadioButton ID="rb_option4" Checked='<%# IF(Eval("ANSWER")="4",true,false) %>' GroupName="answer" Text='<%# Eval("OPT4") %>' CssClass="frm_label" runat="server" />
  </td>
  </tr>
  </ItemTemplate>
  <FooterTemplate>
  </table>
  </FooterTemplate>
  </asp:Repeater>


提前感谢

为什么不使用单选按钮列表?然后,您可以通过以下方式迭代您的单选按钮:

HTML:

如果我的VB.NET语法错误(用于C#),请道歉。

更改此行:

Dim rdbName As String = "rb_option" & i
为此:

Dim rdbName As String = "ctl00_cpExamMaster_Repeater1_ctl01_rb_option" & i

我在repeater中使用它,我觉得使用单选按钮编写代码很容易。在我看来,使用RadioButtonList会容易得多,因为您将所有单选按钮分组在一起,并且可以轻松地遍历它们。我已经更新了我的帖子,希望它更容易理解。也发布你的标记。由于您在下面的评论中提到您正在使用
中继器
,您的ID很可能是
\u rb\u选项
@channs请立即查看我的帖子。:-)@程序员你在哪里发射你的VB代码?Repeater ItemDataBound?@channs no where,你能建议我写什么和在哪里吗?@sbhomra我正在使用代码隐藏方法如果你查看页面的源代码,你看到的单选按钮的ID是什么?对于第三个单选按钮
ctl00\u cpExamMaster\u Repeater1\u ctl01\u rb\u option3
,在调试时,检查
Repeater1.控件的单选按钮并检查其ID。在上述代码中添加断点。开始调试。使用快速观察窗口检查
中继器1.控件中的项目。你应该看到4个单选按钮和它们的ID。@coders你的中继器真的被数据填充了吗?
Dim rdbName As String = "rb_option" & i
Dim rdbName As String = "ctl00_cpExamMaster_Repeater1_ctl01_rb_option" & i