Обновление элемента управления вне UpdatePanel - PullRequest
0 голосов
/ 09 марта 2009

У меня есть следующая структура ASPX:

<UpdatePanel id="OutsidePanel" UpdateMode="Conditional">
  <div runat="server" id="myDiv">
    <UpdatePanel id="InsidePanel" UpdateMode="Conditional">    

     <asp:ImageButton that causes a postback.. />
   </UpdatePanel>
  </div>
</UpdatePanel>

При нажатии кнопки imageButton на стороне сервера я меняю класс myDiv. Это не обновляется. Я предполагаю, что это потому, что div находится вне Inside UpdatePanel. Как заставить его обновить?

Ответы [ 2 ]

0 голосов
/ 09 марта 2009

Не могли бы вы просто вызвать Update метод "OutsidePanel" UpdatePanel на сервере, когда Imagebutton в "InsidePanel" вызывает обратную передачу? Или же, установите ImageButton событие клика как триггер для "OutsidePanel"

Согласно MSDN

Если свойство UpdateMode установлено в Условно, элемент управления UpdatePanel содержание обновляется в следующем обстоятельства:

  • При явном вызове метода Update элемента управления UpdatePanel.

  • Когда элемент управления UpdatePanel вложен в другую панель UpdatePanel контроль, и родительская панель обновлен.

  • Когда обратная передача вызвана элементом управления, который определяется как триггер используя свойство Triggers Элемент управления UpdatePanel. В этом сценарии элемент управления явно вызывает обновление содержимого панели. контроль может быть либо внутри, либо вне элемента управления UpdatePanel, который триггер связан с.

  • Когда для свойства ChildrenAsTriggers установлено значение true, а дочерний управление элементом управления UpdatePanel вызывает обратную передачу. Дочерние элементы управления вложенные элементы управления UpdatePanel не вызвать обновление внешнего Элемент управления UpdatePanel, если они не явно определены как триггеры.

0 голосов
/ 09 марта 2009

Если вы обновляете класс на стороне сервера, то ответ - да. Внутренняя панель обновлений перерисовывается и передается обратно клиенту, но внешняя панель обновлений не заменяется. Все, что находится за пределами самой обновляемой панели, не будет заменено после возврата AJAX. Возможно, вы захотите добавить некоторый javascript, который обновляет div, когда результат возвращается, как простое решение для изменения класса.

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