пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Основы и методы управления состоянием страницы в ASP.NET (жизненный цикл страницы). Обработка событий жизненного цикла.

При выполнении страницы ASP.NET осуществляется ее жизненный цикл, во время которого исполняется ряд шагов обработки. В частности: инициализация, определение элементов управления, восстановление и поддержание рабочего состояния, выполнение кода обработчика событий, а также отрисовка. Важно ознакомиться с жизненным циклом страницы, чтобы иметь возможность записывать код в нужный шаг жизненного цикла с нужным результатом. Кроме этого, при создании собственных элементов управления необходимо ознакомиться с жизненным циклом страницы, чтобы гарантировать правильную инициализацию элементов управления, сбор свойств элементов управления и текущих данных состояния, а также запуска любого управляющего кода. (Жизненный цикл элемента управления базируется на жизненном цикле страницы, но страница передает в элемент управления больше событий, чем доступно для страницы ASP.NET по отдельности.)

Общие этапы жизненного цикла страницы

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

Этап

Описание

Запрос страницы

Запрос страницы происходит перед началом жизненного цикла страницы. При запросе страницы пользователем ASP.NET определяет, нужно ли обрабатывать и компилировать страницу (до начала жизненного цикла страницы), или отправить в ответ на запрос кэшированную версию страницы, не запуская ее обработку.

Запуск

На начальном этапе устанавливаются свойства страницы, например Request и Response. На этом этапе страница также определяет, является ли запрос обратной передачей или новым запросом, и устанавливает свойство IsPostBack. Кроме этого, на этом этапе устанавливается свойство страницы UICulture.

Инициализация страницы

Во время инициализации страницы элементы управления страницы являются доступными, устанавливаются все свойства элементов управления UniqueID. На странице также применяются темы. Если текущий запрос является обратным запросом, данные обратного запроса не загружены, а значения свойств элементов управления не восстановлены к значениям в состоянии просмотра.

Загрузка

Во время загрузки, если текущий запрос является обратным запросом, в свойства элементов управления будут переданы данные, восстановленные из состояния просмотра и состояния управления.

Проверка

Во время проверки вызывается метод Validate всех проверяющих элементов управления, который устанавливает свойство IsValid отдельных проверяющих элементов управления и страницы.

Обработка событий обратного запроса

Если запрос является обратным, вызывается любой из обработчиков событий.

Отрисовка

Перед отрисовкой производится сохранение состояния просмотра страницы и всех элементов управления. На этапе отрисовки страница вызывает метод Render для каждого элемента управления, предоставляя модуль записи текста, который записывает полученные данные в OutputStream свойства страницы Response.

Выгрузка

Выгрузка вызывается после завершения отрисовки страницы, отправки клиенту и готовности к удалению. На данном этапе свойства страницы, например Response и Request, выгружаются, производится очистка.

События жизненного цикла

На каждом этапе жизненного цикла страницы она вызывает события, которые могут быть использованы для управления выполнением собственного кода. В случае элементов управления обработчик событий привязывается к событию при помощи атрибутов типа onclick, или в коде.

Страницы также поддерживают автоматическую обработку: ASP.NET производит поиск методов с соответствующими именами и автоматически выполняет эти методы при возникновении определенных событий. Если атрибут AutoEventWireup в директиве @ Page установлен в значение true (или не установлен, так как он имеет значение true по умолчанию), события страницы автоматически привязываются к методам, которые используют правила именования Page_event, например Page_Load и Page_Init.

Следующая таблица показывает события жизненного цикла страницы, которые используются наиболее часто. Могут существовать и другие события, но они почти не используются в сценариях обработки страниц. Вместо этого они в большинстве случаев используются серверными элементами управления на странице ASP.NET для своей инициализации и отображения.

Событие страницы

Типичные случаи использования

PreInit

Событие используется:

  • С помощью свойства IsPostBack нужно проверить, обрабатывается ли страница в первый раз.
  • Создание или повторное создание динамических элементов управления.
  • Укажите главную страницу динамически.
  • Установите свойство Theme динамически.
  • Прочтите или установите значения свойств.

Init

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

InitComplete

Вызывается объектом Page. Это событие используется для обработки заданий, требующих завершения всех инициализаций.

PreLoad

Это событие используется при необходимости обработки страницы или элемента управления до наступления события Load.

После вызова события при помощи Page оно загружает состояние просмотра для себя и всех элементов управления, затем обрабатывает все данные из обратных запросов, включенных в экземпляр Request.

Load

Page вызывает метод события OnLoad в Page, затем рекурсивно выполняет это действие для каждого дочернего элемента управления, до выполнения загрузки страницы и всех элементов управления.

Метод события OnLoad используется для установки свойств элементов управления и создания подключения к базе данных.

События элементов управления

Эти события используются для обработки определенными событиями в элементах управления, например Button события элемента управления Click или TextBox события TextChanged.

Примечание.

При обратном запросе, если страница содержит проверяющие элементы управления, проверьте свойство IsValidметода Page и отдельных проверочных элементов управления до выполнения обработки.

LoadComplete

Это событие используется для обработки заданий, требующих полной загрузки всех других элементов управления страницы.

PreRender

До события:

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

SaveStateComplete

До этого события ViewState сохраняется для страницы и всех элементов управления. Все изменения на странице или в ее элементах управления на данном этапе будут проигнорированы.

Эти задачи используются для сохранения состояния просмотра без внесения изменений в элементы управления.

 

 

 

 

 

 


11.01.2019; 16:44
хиты: 159
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь