Добавление динамических пользовательских элементов управления ASP.NET НА ОСНОВЕ ViewState - НО до фазы LoadViewState - PullRequest
2 голосов
/ 27 января 2011

Настройка:

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

Проблема:

После обратной передачи изкнопку отправки, мне нужно снова динамически создавать TextBoxes во время Page_Init (ДО НАГРУЗКИ LoadViewState), чтобы после загрузки ViewState мое событие Button_Click могло сохранять / делать все что угодно с пользовательским вводом.ПРОБЛЕМА заключается в том, что я не могу воссоздать текстовые поля на основе выделения в раскрывающемся списке, потому что LoadViewState еще не «выбрал» раскрывающийся список.

ТАК, как я могу читать из состояния просмотра, создать мои текстовые поля, затем позвольте представлению заполнить текстовые поля, а затем Button_Click будет использовать значения ??

Одна вещь, которую я попытался, это переопределить функцию LoadViewState, чтобы я мог читать из состояния представления, создатькоробки, а затем снова загрузите viewstate.Это НЕ сработало, потому что отладчик, казалось, никогда не попадал в мою переопределенную функцию.

    Protected Overrides Sub LoadViewState(ByVal savedState As Object)

        MyBase.LoadViewState(savedState)

        //'Do something like add controls
        Dim test As String = RecordList.SelectedValue
        //'Create controls using value "Test"

        MyBase.LoadViewState(savedState)

    End Sub

Любая помощь будет принята с благодарностью.Я могу опубликовать больше кода, если это необходимо.

Спасибо,

Дэвид

1 Ответ

1 голос
/ 27 января 2011

Я бы предложил получить значение раскрывающегося списка из запроса напрямую, используя свойство UniqueID :

Protected Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
    Dim selectedValue As String = Request.Form(RecordList.UniqueID)
    ' Recreate your dynamic controls based on the selected value
End Sub

Protected Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
    ' Examine dynamic controls and their values (retireved from the ViewState)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...