Динамически создавать и получать доступ к RadioButtonLists из кода - PullRequest
0 голосов
/ 04 февраля 2009

Моя проблема: у меня есть урезанная страница default.aspx. Помимо элемента, почти ВСЕ функции должны быть в коде позади aspx.vb.

Программа получает информацию из базы данных и сравнивает ее с другим списком таблиц, число обоих списков может различаться.

Поэтому мне нужно «привязать» динамическое число RadioButtonLists к элементам управления asp:table, и мне нужно создать динамическое число ListItems для каждого созданного RadioButtonList. Позже мне нужно будет иметь доступ к выбранному значению каждого из них, чтобы определить будущие функции в базе данных.

Пример кода выглядит так:

файл aspx:

<asp:table ID="table1" runat="server">

<ч /> файл aspx.vb (с выделенным кодом):

Sub createHtmlTables()

    For i = 0 To productIndex.Count - 1

        ''//create a RadioButtonList for each i
        Dim row As New TableRow
        Dim cell As New TableCell

        For k = 0 To productTypeAmountIndex.Count - 1

            ''//create a ListItem(radiobutton)
            ''//for each k and include it in the RadioButtonList

            ''//assign a value (for example name) of the product as
            ''//the ListItems ID to retreive it later

        Next

        ''//add the RadioButtonList to cell.controls etc
        Table1.Rows.Add(row)

    Next
End Sub

Sub addToDb()
    For i = 0 To productIndex.Count - 1
        ''//get the RadioButtonList for each i
        ''//and return the value of the selected radiobutton
        ''//within the list to a variable

    Next

End Sub

Извините, если это долго и сбивает с толку, но, поскольку я пока не могу правильно сформулировать свои вопросы, я постарался включить как можно больше информации. По сути, мне просто нужен пример того, как и какие методы использовать, чтобы все это работало.

Обновление:

Все постоянно говорят мне, что начинать с таблиц было ошибкой, но в одном месте я обнаружил, что вы не можете настроить таблицы данных так же легко, как вы можете с таблицами. Думаю, тогда я начну все с нуля.

Дело в том, что пользовательский интерфейс должен быть максимально графически приятным, с помощью таблиц я могу выполнять любые полезные действия, такие как окрашивание ячеек в соответствии с информацией внутри и т. Д.

В любом случае, спасибо, но не то, что я искал, но я попытаюсь переделать вещь с помощью datagrid / gridview и посмотреть, что произойдет. Может пройти несколько дней, прежде чем я выучу их достаточно, чтобы использовать и вернуться сюда.

Ответы [ 2 ]

0 голосов
/ 18 мая 2015

Это мой .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
0 голосов
/ 04 февраля 2009

Вместо таблицы вам повезет с настоящим серверным элементом управления, таким как gridview, datagrid или ретранслятор. Затем вы можете просто подключить свойство источника данных к вашему элементу управления.

Для всех динамических элементов управления помните, что вы должны воссоздавать их каждый раз, когда выполняете обратную передачу. Это может показаться странным, но хитрость заключается в том, что каждый запрос к серверу, включая обратные передачи, использует другой экземпляр класса вашей страницы. По окончании этого запроса / обратной передачи экземпляр страницы, используемый для этого запроса, уничтожается. Единственными активными объектами являются сеанс и кеш.

...