Сохранение динамически загруженных пользовательских элементов управления в состоянии просмотра - PullRequest
1 голос
/ 14 мая 2010

У меня есть простой пользовательский элемент управления, содержащий два текстовых поля, которые я добавляю в заполнитель события Button Click. Я сохраняю количество (количество) кликов в состоянии View и запускаю цикл, используя count для создания всех ранее добавленных пользовательских элементов управления. Я также добавляю идентификаторы в каждый пользовательский элемент управления (добавляя «UC» и счетчик). Я также проверил в источнике представления идентификаторы одинаковы каждый раз, когда они создаются. У меня есть другая кнопка, которая в основном делает пост обратно. У меня EnableViewState enabled = "true" во всех элементах управления вплоть до уровня страницы. Моя проблема заключается в том, что пользовательский ввод не сохраняется при обратной передаче. пожалуйста посоветуй. Разве это не должно происходить автоматически для меня?

Ответы [ 2 ]

1 голос
/ 14 мая 2010

Вам необходимо создать свои динамические элементы управления в событии Page_PreInit, а не в Page_Load или в обработчике события Click. Таким образом, они будут там до ViewState, а затем будут применены ваши опубликованные значения.

Я думаю, что происходит то, что вы создаете свои элементы управления во время обработчика события click, который происходит ПОСЛЕ применения ViewState и PostBack. Это означает, что ваши элементы управления будут создаваться пустыми каждый раз.

1 голос
/ 14 мая 2010

Посмотрите на это:

http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx

Я столкнулся с незначительными проблемами в веб-ферме, но для простых развертываний его использование довольно просто. (Поставляется с исходным кодом, и проблема с веб-фермой довольно проста).

...