1

これは、どのラジオボタンが選択されているかを知るための私のコードですが、6 行目でエラーが発生します。Object reference not set to an instance of an object

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

rb_option1ID 、rb_option2rb_option3およびの 4 つのラジオボタンがありますrb_option4

アップデート

<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>

少し早いですがお礼を !!

4

2 に答える 2

3

RadioButton リストを使用しないのはなぜですか。次に、次の方法でラジオボタンを反復処理できます。

HTML:

<asp:RadioButtonList ID="RadioButtonList1" runat="server">
    <asp:ListItem Value="1">Radio 1</asp:ListItem>
    <asp:ListItem Value="2">Radio 2</asp:ListItem>
    <asp:ListItem Value="3">Radio 3</asp:ListItem>
    <asp:ListItem Value="4">Radio 4</asp:ListItem>
</asp:RadioButtonList>

コード:

For i As Integer = 1 To 4
    For Each li As ListItem In RadioButtonList1.Items
        If li.Selected Then
               selected_option = li.Value
        End If
    Next
Next

私の VB.NET 構文が間違っている場合はお詫びします (C# に慣れています)。

于 2012-08-02T13:42:23.183 に答える
0

この行を変更します。

Dim rdbName As String = "rb_option" & i

これに:

Dim rdbName As String = "ctl00_cpExamMaster_Repeater1_ctl01_rb_option" & i
于 2012-08-02T13:58:59.690 に答える