我试图在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中的控件。我在网上找不到任何答案......
有人能指出我正确的方向吗?
答案 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