Можно ли программно изменить UpdatePanel элемента управления во время события? - PullRequest
0 голосов
/ 20 июля 2011

У меня есть две UpdatePanel, UpdatePanel1 и UpdatePanel2.

Я нахожусь внутри серверного события. Я хотел бы удалить элемент управления из UpdatePanel1 и добавить элемент управления в UpdatePanel2. Когда я пытаюсь это сделать, я получаю Внутреннюю ошибку сервера 500.

Что-то простое, как это:

siblingPane.UpdatePanel.ContentTemplateContainer.Controls.Remove(splitter);
parentPane.UpdatePanel.ContentTemplateContainer.Controls.Add(splitter);

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

РЕДАКТИРОВАТЬ: У меня возникла эта проблема после того, как на моей странице произошли следующие «события»:

  • Действие, инициированное пользователем.
  • Я отвечаю на действие клиентской стороны, вызывая __doPostBack для элемента управления.
  • Этот элемент управления реализовал IPostBackEventHandler. Я сейчас внутри RaisePostBackEvent
  • Элемент управления, отвечающий на обратную передачу, имеет описанную / показанную иерархию здесь
  • Когда эта обратная передача завершается, состояние веб-страницы необходимо изменить так, чтобы произошло удаление некоторых элементов управления, а в некоторых сценариях другие элементы управления перемещаются вверх по иерархии DOM к родительской UpdatePanel.

Я не хочу вызывать постбэк после моей страницы __doPostBack, который побил бы цель всего. У меня нет возможности изменить структуру моих элементов управления во время Page_Init, потому что в элементах управления RaisePostBackEvent я выполняю всю тяжелую работу.

1 Ответ

0 голосов
/ 20 июля 2011

Ошибка сервера, вероятно, говорит о том, что нельзя изменять коллекцию элементов управления? Вообще говоря, элементы управления должны быть добавлены / удалены во время OnInit () (может быть, это часть OnPreInit ()?) Жизненного цикла страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...