UserControl, PlaceHolder и UpdatePanel при PostBack

Я динамически загружаю User Control с Update Panel внутри Place Holder.

Когда я нажимаю кнопку в User Control, должно обновляться Update Panel содержимое, но вместо этого обновляется вся страница, а пользовательский элемент управления исчезает со страницы, потому что Page_Load страницы ничего не загружает, если это PostBack.

Как я могу это исправить?


person user387635    schedule 09.07.2010    source источник


Ответы (4)


Всякий раз, когда происходит частичная или полная обратная передача, автоматически запускается весь метод update () всех панелей обновления. Для предотвращения такого поведения вам необходимо установить свойство UpdateMode="Conditional". В этой ситуации вам нужно указать asynchronous trigger или ChildrenAsTriggers=true.

для предотвращения исчезновения динамически загружаемого пользовательского элемента управления, хорошо сохранить его в ViewState, Вот руководство и образец приложения

person Mostafa    schedule 28.10.2011

Я думаю, вам нужно повторно вставить элемент управления в page_load или pre_render. Динамически созданные элементы управления не выдерживают обратной передачи.

person aape    schedule 09.07.2010

Убедитесь, что вы создаете элемент управления для КАЖДОГО запроса страницы, независимо от GET / POST. Также убедитесь, что вы даете ему тот же идентификатор.

Мне нравится переопределять метод CreateChildControls.

person matt-dot-net    schedule 09.07.2010

Вам нужно добавить страницу управления на страницу в методе page_init. Это должно быть добавлено к каждому посту обратно. Элемент управления сохранит все значения даже после добавления его обратно.

Имеется полный рабочий пример по этой ссылке.

person Patrick    schedule 09.02.2016