Bir soru sormaya çalışıyorum ve veritabanından seçilen bir sorunun radiobuttonlist değerini elde etmeye çalışıyorum. Radyo düğmesi, arkasındaki kodda dinamik olarak oluşturuldu. Radiobuttonlist için soru ve liste öğesi rastgele görüntülenmiştir.Seçili değerleri almak için Rastgele oluşturulmuş dinamik RadioButtonList'den DB
Yapmaya çalıştığım şey, düğmeyi tıkladığınızda kullanıcının yanıtını DB'den gelen yanıtla karşılaştırmaktır. Bu yüzden, radiobuttonlist.selected değerini almam gerekiyor.
Seçilen değeri almaya çalışırken, boş değer aldım. Bence bu soruya bağlıydı ve radiobuttonlist rastgele görüntüleniyordu, dolayısıyla geri arama id olarak değiştirildi. Seçilen değerini nasıl alacağın bir yolu var mı? İşte
, şimdiye kadar benim kodudurProtected 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
bu bölümünde
Got null, ben kullanıcıdan Radiobuttolist.SelectedValue
almaya çalıştı
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
, hep soru haricinde null
var ve daha önce görüntülenen radyo düğmesi listesi. Herhangi bir öneri ne yapmalıyım? Şimdiden teşekkürler.
Eğer txt = Request.Form ("RadioButtonList") SelectedValue demek gibi bir şey demek istedi,
Request.Form()
kullanarak erişim değerine deneyin? Denedim ama yine de –null üretiyor, aslında dinamik olarak oluşturulan kontrolün görünümleri korunmuyor. Bu yüzden onlara Request nesnesinden erişmemiz gerekiyor. –
Ama yine de sıfır, –