私はアンケートを作成し、質問のradiobuttonlistの選択された値をデータベースから取得しようとしています。 radiobuttonlistはコードの中で動的に生成されました。 Radiobuttonlistの質問とリスト項目がランダムに表示されました。DBから無作為に作成された動的RadioButtonListから選択した値を取得します
私がしようとしているのは、ボタンをクリックしたときに、DBの回答キーとユーザーの回答を比較することです。だから、私はradiobuttonlist.selected値を取る必要があります。
選択した値を取得しようとすると、null値が返されました。私はそれが質問とラジオボタンリストのためにランダムに表示されたと思うので、それを呼び出すためのIDが変更されました。選択された価値をどのように取るかについての方法はありますか?ここで
は、これまでの私のコードですProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
LoadControls2()
End Sub
Private Sub LoadControls2()
keyList = New ArrayList
Dim dtTable As DataTable
'Select and randomize the Question taken from DB
Dim cmd As New SqlCommand("Select TOP 3 [Question], [Choice], [Answer] from tbl_Question ORDER BY NEWID()")
dtTable = ExecuteQuery(cmd, "SELECT")
lblMsg.Text = strMsg
For i As Integer = 0 To dtTable.Rows.Count - 1
Dim tmpRBL As Object = New RadioButtonList
Dim tmpLBL As Object = New Label
tmpLBL.ID = "Label" & i
tmpLBL.Text = i + 1 & ". " & dtTable.Rows(i)(0).ToString()
tmpLBL.CssClass = "forLabel"
tmpRBL.ID = i & "rbl"
tmpRBL.CssClass = "forRadio"
'Radnom the multiple choice
Dim temp() As String = dtTable.Rows(i)(1).ToString().Split(New Char() {";"}, StringSplitOptions.RemoveEmptyEntries)
Dim rnd As New System.Random
Dim MyRandomArray = temp.OrderBy(Function() rnd.Next)
For x As Integer = 0 To MyRandomArray.Count - 1
Dim tmpItem As Object = New ListItem(MyRandomArray(x))
tmpRBL.Items.Add(tmpItem)
Next
tmpRBL.RepeatLayout = RepeatLayout.Flow
tmpRBL.RepeatDirection = RepeatDirection.Vertical
PlaceHolder1.Controls.Add(tmpLBL)
PlaceHolder1.Controls.Add(tmpRBL)
PlaceHolder1.Controls.Add(New LiteralControl("</br>"))
keyList.Add(dtTable.Rows(i)(2).ToString())
Next
'Store the answer Key
Session("ArrayKey") = keyList
End Sub
この部分の
ガットヌル、私は、ユーザーからのRadiobuttolist.SelectedValue
を撮ってみました
Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
Dim majstor_rbl(3) As String
Dim arrayKey As ArrayList = New ArrayList
arrayKey = Session("ArrayKey")
For i As Integer = 0 To 2
RadioButtonList = TryCast(PlaceHolder1.FindControl(i & "rbl"), RadioButtonList)
majstor_rbl(i) = RadioButtonList.SelectedValue 'got null in here
Next
End Sub
が、私はいつも疑問を除くnull
を得ました前に現れたラジオボタンリスト。 私は何をすべきですか? ありがとうございます。
あなたはTXT =のRequest.Form( "RadioButtonListの")SelectedValueのを呼び出すようなものを意味した、
Request.Form()
を使用してアクセス値に試してみてください?私はそれを試したが、それでもnullを生成する –はい、実際に動的に作成されたコントロールのviewstateは維持されません。そのため、Requestオブジェクトからアクセスする必要があります。 –
しかし、それでもnullを取得しました –