2013-07-23 2 views
2

У меня есть таблица, которая содержит вопросы и кучу динамически созданных списков переключателей, im пытается написать код, который будет проходить через каждый из списка переключателей и получать значение выбранного значения вопроса и соответствующего идентификатора вопроса. У меня есть следующий код, который возвращает выбранное значение списка переключателей. Как я получу идентификаторы вопросов, а также их выбранное значение?asp.net looping через динамическое управление в таблице

For Each ctrl As Control In form1.Controls 
    If TypeOf ctrl Is RadioButtonList Then 
     Dim rbl As RadioButtonList = DirectCast(ctrl, RadioButtonList) 
     For i As Integer = 0 To rbl.Items.Count - 1 
     If rbl.Items(i).Selected Then 
      Dim value As String = rbl.SelectedValue 
     End If 
     Next 
    End If 
Next 

ответ

1

При создании радио кнопки, вы должны поместить их в словарь (убедитесь, что сделать это в Init фазе). String ключ предполагается держать вопрос ID:

Dim radios As New Dictionary(Of String, RadioButtonList) 
Dim table As DataTable 

Sub Page_Init(sender As Object, e As EventArgs) 
    table = ... 
    For Each row As DataRow In table.Rows 
     Dim rbl As New RadioButtonList 
     ' add radio buttons to rbl 
     radios.Add(row("id").ToString, rbl) 
    Next 
End Sub 

Тогда в обработчик событий для получения ответов вы можете легко получить доступ к ним:

Sub MyHandler(sender As Object, e As EventArgs) 
    For Each row As DataRow In table.Rows 
     Dim value As String = GetAnswer(row("id").ToString) 
     ' do something with the answer ... 
    Next 
End Sub 

Function GetAnswer(id As String) As String 
    For Each item In radios(id) 
     If item.Selected Then Return item.SelectedValue 
    Next 
    Return Nothing 
End Function 
+0

где функция GetMyQuestions(). что вы сделали в этой функции? – adward

+0

Ну, ваши вопросы должны откуда-то исходить. Я просто предположил, что вы загружаете их из заданной функции. Покажите больше своего кода, чем мы можем легче сказать, что вам нужно делать. – jor

+0

Этот код генерирует динамические идентификаторы вопросов .... Dim lblQuestion As New Label .... lblQuestion.Text = строка ("Question"). ToString ..... radioQuestion.ID = "Question_" & row («Id»). ToString ..... – adward

Смежные вопросы