ASP.NET AJAX: Клиентский объект PageRequestManager - События частичного постбэка с клиентской стороны

ОГЛАВЛЕНИЕ

 

События частичного постбэка с клиентской стороны

Как уже обсуждалось в статье "Используем UpdatePanel", всегда, когда веб-элемент управления вызывает постбэк в пределах UpdatePanel (например, когда нажата кнопка Button), вместо обычного постбэка UpdatePanel вызывает частичный постбэк. Частичный постбэк асинхронно связывается с веб-сервером и посылает значения полей со страницы. На сервере, страница обрабатывается, но браузеру возвращается только то содержимое в формате HTML, которое необходимо конкретной области соответствующего UpdatePanel. Данные области обновляются динамически. Вся эта тяжелая работа выполняется за нас клиентской и серверной частями ASP.NET AJAX Framework.

Наши задачи относительно страницы просты: просто добавить элемент UpdatePanel на страницу - и вся магическая функциональность AJAX произойдет автоматически. Но что случится, если нам понадобится больше власти над циклом частичного постбэка? Например, представьте что нам необходимо выполнить некоторый скрипт клиентской стороны после того, как будет завершен частичный постбэк? Или, что если мы хотим отменить частичный постбэк при выполнении какого-либо условия? Хорошей новостью является то, что такая настраиваемая функциональность доступна. Мы можем создать обработчики событий клиентской стороны, которые будут выполнятся в ответ на определенные события во время жизненного цикла частичного постбэка.

PageRequestManager обрабатывает частичный постбэк на клиентской стороне. Когда частичный постбэк инициируется, объект PageRequestManager совершает следующие действия на клиентской стороне:

  1. Вызов события initializeRequest event - это самое первое событие, которое вызывается во время жизненного цикла частичного постбэка и предоставляет нам возможность определить тот HTML элемент, который вызывал этот частичный постбэк и отменить его, если это необходимо.
  2. Вызов события beginRequest event - данное события вызывается как раз перед тем, как запрос будет послан на сервер. Элемент управления UpdateProgress использует данное событие чтобы отобразить его результат.
  3. Запрос отсылается на сервер и там страница обрабатывается.
  4. Вызов события pageLoading event происходит, когда сервер посылает ответ.
  5. Вызов события pageLoaded event. Данное событие вызывается когда обновляется содержимое страницы - посредством полного либо частичного постбэка..
  6. Вызов события endRequest event оповещает о завершении цикла частичного постбэка.

Учтите, что что  вышеперечисленные события  - это события клиентской стороны. Данные события вызываются в веб-браузере пользователя. Мы можем использовать данные события путем написания кода в JavaScript который свяжет обработчик события с одним из этих событий.