来自动态创建的radiobuttonlist vb

时间:2015-05-17 15:27:54

标签: asp.net vb.net visual-studio-2012

我试图在Visual Studio 2012中创建一个测验网页,并且在表格中动态创建的radiobuttonlist中获取所选值时遇到一些麻烦。

这是我创建radiobuttonlist的方法(并将其添加到表格中)

Dim NewRow As New TableRow
Dim NewCell As New TableCell
Dim rblOptions As New RadioButtonList
rblOptions.ID = "Option" & intQuestion.ToString
NewCell.Controls.Add(rblOptions)
NewRow.Cells.Add(NewCell)
'Questions is a table
Questions.Rows.Add(NewRow)

这就是我试图在用户点击按钮后从radiobuttonlist中获取selectedvalue的方式。

Dim rbl As RadioButtonList = DirectCast(Page.FindControl("Option" & intQuestion.ToString), RadioButtonList)

If rbl.SelectedValue.ToString = sdrGetQuestions.Item(0).ToString Then
            intScore += 1
End If

在两种情况下,变量intQuestion = 0。 运行程序时,我遇到了错误:

  

对象引用未设置为对象的实例。

在这一行:

  

如果rbl.SelectedValue.ToString = sdrGetQuestions.Item(0).ToString那么

我认为这显然意味着程序无法找到它必须放在rbl中的控件。我在网上找不到任何答案......

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

这是我的.aspx代码。

<asp:Table ID="Questions" runat="server">

</asp:Table>
<asp:Button ID="SaveButton" runat="server" Text="Save" />

这是我的代码背后的代码。 我添加了动态下拉列表。 在保存按钮单击时,我正在检索选定的值。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim NewRow As New TableRow
    Dim NewCell As New TableCell
    Dim rblOptions As New RadioButtonList
    rblOptions.ID = "Option1"

    rblOptions.Items.Add(New System.Web.UI.WebControls.ListItem("1", "1"))
    rblOptions.Items.Add(New System.Web.UI.WebControls.ListItem("2", "2"))
    rblOptions.Items.Add(New System.Web.UI.WebControls.ListItem("3", "3"))

    NewCell.Controls.Add(rblOptions)
    NewRow.Cells.Add(NewCell)
    'Questions is a table
    Questions.Rows.Add(NewRow)

End Sub

Protected Sub SaveButton_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
    If Page.IsValid Then
        Dim rbl As RadioButtonList = DirectCast(Questions.FindControl("Option1"), RadioButtonList)

        If rbl.SelectedValue.ToString = "ExpectedValue" Then

        End If
    End If
End Sub