I have dynamic creation of radio button list and then disappear when i select a radio button when autopostback is true. I have multiple questions below each one 4 radiobuttons beside each one and answer to select. But the problem if i select an answer all the radiobuttons and questions on the page are disappearing. All questions and radiobuttonlists are dynamic.
Dim rl1 As RadioButtonList = New RadioButtonList()
Dim rl2 As RadioButtonList = New RadioButtonList()
Protected Sub DropDownList3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDownList3.SelectedIndexChanged
rl1.RepeatLayout = RepeatLayout.Flow
rl1.AutoPostBack = True
rl1.EnableViewState = True
rl2.RepeatLayout = RepeatLayout.Flow
rl2.AutoPostBack = True
rl2.EnableViewState = True
Dim str As String
Dim con As New SqlConnection
Dim cmdcount As New SqlCommand
Dim cmdmincritid As New SqlCommand
Dim cmdcritdesc As New SqlCommand
Dim cmdquestdesc As New SqlCommand
Dim cmdcritid As New SqlCommand
Dim cmdquestid As New SqlCommand
Dim questcount As New SqlCommand
Dim cmdqvalue As New SqlCommand
Dim cmdtry As New SqlCommand
Dim sda As New SqlDataAdapter
str = "Data Source=SAYMIX\SAMI_SQL_SERVER;Initial Catalog=TES1;Integrated Security=True"
con = New SqlConnection(str)
con.Open()
cmdcount = New SqlCommand("SELECT COUNT(critid) FROM Criteria WHERE Criteria.did=" + DropDownList3.SelectedValue, con)
cmdmincritid = New SqlCommand("SELECT MIN(critid) FROM Criteria WHERE Criteria.did=" + DropDownList3.SelectedValue, con)
Dim count As Int16
count = cmdcount.ExecuteScalar()
'Try
Panel1.Visible = True
lv.Visible = True
Dim mincritid As Integer = cmdmincritid.ExecuteScalar()
For i As Integer = 0 To count - 1
If (mincritid = cmdmincritid.ExecuteScalar()) Then
cmdcritdesc = New SqlCommand("SELECT critdesc FROM Criteria WHERE critid = '" & mincritid & "' ", con)
Dim criteria As Label = New Label()
criteria.Text = cmdcritdesc.ExecuteScalar() + "<br/>"
criteria.ForeColor = Drawing.Color.Red
criteria.Font.Size = 14
criteria.Font.Bold = True
cmdcritid = New SqlCommand("SELECT Criteria.critid FROM Criteria WHERE Criteria.critid='" & mincritid & "' ", con)
criteria.ID = Convert.ToInt16(cmdcritid.ExecuteScalar())
Panel1.Controls.Add(criteria)
questcount = New SqlCommand("SELECT COUNT(qid) FROM quest WHERE quest.critid= '" & criteria.ID & "' ", con)
Dim qc As Int16 = questcount.ExecuteScalar()
Dim qid(3) As Integer
Dim qdesc As String
Dim qvalue As Int16
cmdquestid = New SqlCommand("SELECT qid FROM quest WHERE critid = ALL (SELECT critid FROM quest WHERE critid = '" & criteria.ID & "' )", con)
Dim dr As SqlDataReader = cmdquestid.ExecuteReader()
If dr.HasRows Then
Try
For x As Integer = 0 To 3
dr.Read()
qid(x) = dr("qid")
Next
dr.Close()
Catch ex As Exception
End Try
End If
For j As Integer = 0 To qc - 1
cmdquestdesc = New SqlCommand("SELECT quest.qdesc FROM quest WHERE quest.qid= '" & qid(j) & "' ", con)
cmdqvalue = New SqlCommand("SELECT quest.qvalue FROM quest WHERE quest.qid= '" & qid(j) & "' ", con)
dr.Close()
qdesc = cmdquestdesc.ExecuteScalar()
qvalue = cmdqvalue.ExecuteScalar()
Dim quest As Label = New Label()
quest.ID = qid(j)
quest.Text = qdesc
rl1.Items.Add(New ListItem(qdesc.ToString(), quest.ID.ToString()))
AddHandler rl1.SelectedIndexChanged, AddressOf SaveRadioButtons
Panel1.Controls.Add(rl1)
Next
lv.Controls.Add(Panel1)
Else
Dim criteria As Label = New Label()
cmdcritdesc = New SqlCommand("SELECT critdesc FROM Criteria WHERE critid = '" & mincritid & "' ", con)
criteria.Text = cmdcritdesc.ExecuteScalar() + "<br/>"
criteria.ForeColor = Drawing.Color.Red
criteria.Font.Size = 14
criteria.Font.Bold = True
cmdcritid = New SqlCommand("SELECT Criteria.critid FROM Criteria WHERE Criteria.critid='" & mincritid & "' ", con)
criteria.ID = Convert.ToInt16(cmdcritid.ExecuteScalar())
Panel1.Controls.Add(criteria)
questcount = New SqlCommand("SELECT COUNT(qid) FROM quest WHERE quest.critid= '" & criteria.ID & "' ", con)
Dim qc As Int16 = questcount.ExecuteScalar()
Dim qid(3) As Integer
Dim qdesc As String
Dim qvalue As Int16
cmdquestid = New SqlCommand("SELECT qid FROM quest WHERE critid = ALL (SELECT critid FROM quest WHERE critid = '" & criteria.ID & "' )", con)
Dim dr As SqlDataReader = cmdquestid.ExecuteReader()
If dr.HasRows Then
Try
For x As Integer = 0 To 3
dr.Read()
qid(x) = dr("qid")
Next
dr.Close()
Catch ex As Exception
End Try
End If
For j As Integer = 0 To qc - 1
cmdquestdesc = New SqlCommand("SELECT quest.qdesc FROM quest WHERE quest.qid= '" & qid(j) & "' ", con)
cmdqvalue = New SqlCommand("SELECT quest.qvalue FROM quest WHERE quest.qid= '" & qid(j) & "' ", con)
dr.Close()
qdesc = cmdquestdesc.ExecuteScalar()
qvalue = cmdqvalue.ExecuteScalar()
Dim quest As Label = New Label()
quest.ID = qid(j)
quest.Text = qdesc
rl2.Items.Add(New ListItem(qdesc.ToString(), quest.ID.ToString()))
AddHandler rl2.SelectedIndexChanged, AddressOf SaveRadioButtons
Panel1.Controls.Add(rl2)
Next
lv.Controls.Add(Panel1)
End If
mincritid += 1
Next
con.Close()