динамические столбцы исчезают после обратной передачи

у меня есть GridView с некоторыми BoundFields и двумя TemplateFields . В этих двух TemplateFields я динамически создаю UserControls , содержащие DropDownList и TextBox , которые пользователи могут изменять.

Когда я пытаюсь получить значения элементов управления после PostBack , значения в BoundFields все еще присутствуют, но мои динамические элементы управления исчезают. Я могу создать их снова, но он не получит значения пользователя ... Как я могу получить эти значения, пока они не были потеряны?

Вот часть моего кода:

В RowDataBound событие:

Select Case type
    Case "BooleanBis"
        e.Row.Cells(2).Controls.Clear()
        Dim list1 As BooleanBisList = New BooleanBisList(avant, False)
        e.Row.Cells(2).Controls.Add(list1)

        e.Row.Cells(4).Controls.Clear()
        Dim list2 As BooleanBisList = New BooleanBisList(apres, True)
        e.Row.Cells(4).Controls.Add(list2)
    Case "Boolean"
        e.Row.Cells(2).Controls.Clear()
        Dim list3 As BooleanList = New BooleanList(avant, False)
        e.Row.Cells(2).Controls.Add(list3)

        e.Row.Cells(4).Controls.Clear()
        Dim list4 As BooleanList = New BooleanList(apres, True)
        e.Row.Cells(4).Controls.Add(list4)
End Select

В моем событии нажатия кнопки я пытаюсь получить пользовательский элемент управления:

Case "String"
    temp.ChampValeurApres = DirectCast(Tableau1.Rows(i).Cells(selectedColumn).Controls(1), TextBox).Text

, но получаю сообщение об ошибке, что его не существует.

9
задан Cœur 3 August 2017 в 03:02
поделиться