Реакция на события

Оценить
(0 голоса)

Когда вы пишете страницы ASP.NET, то важно понимать, как работает модель событий. Модель событий — это то, как происходят события на сервере, когда пользователи делают запросы (или вызывают действия). Модель событий ASP.NET отличается от стандартной модели событий Windows Forms, поскольку она сочетает события (которые происходят на сервере) с Web-приложением (работающим внутри браузера).

В странице ASP.NET больше от жизненного цикла, чем от модели событий. Жизненный цикл — это последовательность стадий, через которые проходит страница. На каждой ста­дии обычно происходит одно или несколько событий. Стадии жизненного цикла страницы ASP.NET показаны на рис. 14.24.

Рис. 14.24. Жизненный цикл страницы ASP.NET Все стадии рис. 14.24 описаны здесь:

1.   Запрос пользователя — пользователь делает запрос данной страницы.

2.   Начало обработки — ASP.NET определяет, можно ли получить версию страницы из кэ­ша или необходимо выполнить стадию жизненного цикла страницы. Описание: C:\Users\Артём\Desktop\media\image340.png

3.   Инициализация страницы — ASP.NET инициализирует страницу и делает каждый эле­мент управления страницы доступным (в отношении кода). Однако элементы управле­ния в этот момент не соответствуют никакому состоянию просмотра и данные обратной передачи не загружены.

4.   Загрузка страницы — ASP.NET загружает страницу, подключает элементы управления к информации об их состоянии просмотра и подключает данные обратной передачи ко всем элементам управления.

5.   Проверка страницы и элементов управления — после загрузки страницы она проверяет­ся. Это означает вызов каждого элемента управления и обеспечение срабатывания ме­тода Validation. И наконец, по результатам проверки настраивается свойство IsValid для страницы.

6.   Обработка событий обратной передачи — если запрос пользователя передает обратно на страницу данные (т. е. это не простой запрос), то в этот момент вызываются все свя­занные с обратной передачей события (такие как событие нажатия кнопки).

7.   Создать/сохранить информацию о состоянии просмотра— ASP.NET начинает процесс отправки ответа пользователю. Первым делом необходимо создать данные о состоянии просмотра и встроить их внутрь ответа.

8.   Визуализация страницы — на этой стадии ASP.NET генерирует весь HTML для страни­цы и записывает его в выходной поток.

9.   Ответ пользователю — ответ посылается назад тому пользователю, который сделал за­прос.

10.  Выгрузка страницы — ASP.NET выгружает страницу и убирает ее из памяти.

По мере того как страница продвигается по своему жизненному циклу, происходит опреде­ленная последовательность событий. Именно в эти события вы помещаете свой код. Важно знать этот жизненный цикл для того, чтобы понимать: события; кргда они происходят; а также что доступно вам внутри этих событий. Вы должны иметь нужный код в нужном со­бытии для того, чтобы выполнить нужную работу. Давайте рассмотрим основы модели со­бытий Web-страницы. Далее перечислены ключевые события жизненного цикла страницы (в том порядке, в котором они происходят):

1.   Page Prelnit— это первое событие, для которого вы можете писать код. Событие Prelnit полезно в том случае, когда вы создаете элементы управления динамически, настраивае­те динамически главную страницу или динамически настраиваете тему страницы.

2.   Page Init — это событие вызывается для создания элементов управления, используемых Web-страницей. Оно также инициализирует свойства этих элементов управления. Это событие обычно автоматически создается интегрированной средой разработки для на­стройки свойств элементов управления данной страницы.

3.   Page Load — это событие вызывается тогда, когда страница загружена (после инициали­зации элементов управления). Это событие часто используется Web-разработчиками. Вы можете использовать это событие для определения, запрашивает ли пользователь стра­ницу или выполняет обратную передачу (отправляет данные). Затем на основе этой ин­формации вы вызываете соответствующий код.

4.   Control Specific Event(s) — инфраструктура страницы выполняет событие (или события), связанное с элементом управления, который пользователь использовал1 для отправки формы (если они есть). Например, если пользователь щелкнул кнопку на вашей форме, то вызывается событие нажатия кнопки (после загрузки страницы).

5.   Page Pre Render— это событие вызывается непосредственно перед тем, как окончатель­ная визуализация страницы посылается обратно в браузер. Вы можете использовать это событие для выполнения изменений страницы после вызова всех событий.

6.   Page Unload — это последнее событие, которое вызывается для страницы (после визуа­лизации страницы). Вы используете это событие для выполнения очистки. Например, вы можете закрыть подключения, выполненные на уровне страницы, или выполнить какое- либо журналирование. Однако вы не можете делать изменений, которые повлияют на от­вет пользователю. Он был закончен на стадии визуализации (см. рис. 14.24).

Эти операции представляют собой основу модели событий для страницы. Имеются также и дополнительные события для страницы. Кроме того, пользовательские элементы управле­ния имеют собственные события, которые вызываются во время специфичной для элемента управления стадии события. Главные страницы также могут добавить определенную обра­ботку по умолчанию для всех страниц. Понимание событий страницы всегда поможет вам при отладке.

Примечание

Дополнительную информацию по тому, что происходит внутри инфраструктуры ASP.NET, см. в статье "ASP.NET Application Life Cycle Overview" на Web-сайте MSDN. Эта статья дает подробный обзор того, как ASP.NET работает с запросами пользова-1 теля и как визуализирует страницы. Она также описывает специфичные для приложе­ний и сеансов события (находящиеся в global.asax).

Добавление обработчиков событий страниц

Есть несколько способов обеспечить вызов ваших обработчиков событий в ASP.NET при .выполнении страницы. Во-первых, вы можете вызвать их автоматически. Если вы установи­те атрибут уровня страницы AutoEventWireup в значение True, то ASP.NET найдет собы­тия, которые соответствуют схеме наименования Page_Event, и автоматически вызовет их в соответствующее время. Этот подход удобен, но он требует от вас запоминания имени каж­дого события (для правильного их указания).

Вы можете также явно привязать события страницы к методам вашего кода. При этом вы можете использовать ваши собственные имена событий. Вы можете также позволить Visual Studio сгенерировать имена событий. Вы можете добавить события на страницу в визуаль­ном конструкторе (точно так же, как вы привязываете события к элементам управления — при помощи окна Properties). Однако для доступа к событиям страницы вы должны нахо­диться в конструкторе Component Designer данной страницы. Конструктор Component Designer— это еще одно конструкторское представление страницы. Оно используется для добавления на страницу компонентов (таких как журналирование событий). Вы можете по­пасть в этот конструктор компонентов при помощи щелчка правой кнопкой мыши по стра­нице и выбора пункта View Component Designer. После того как вы его откроете, вы от-

крываете окно Properties данной страницы. Здесь вы можете нажать значок молнии для то­го, чтобы отобразить все события для данной страницы. Пример показан на рис. 14.25.

На правой стороне рисунка показаны свойства страницы CustomerEdit.aspx. Обратите вни­мание, что значок с молнией в панели инструментов Properties нажат. При этом отобража­ются события (а не свойства). Вы можете дважды щелкнуть по событию в этом списке, что­бы создать заглушку метода для данного события. Вы можете также выбрать метод в вашем коде и явным образом привязать его к событию.

Добавление обработчиков событий элементов управления

События в элементы управления вы добавляете аналогичным образом. Для элементов управления не существует визуального конструктора компонентов (к счастью!). Вы просто выбираете элемент управления на данной странице и смотрите его свойства в окне свойств Properties. В этом окне вы можете выбрать значок с молнией для показа всех событий для данного элемента управления. Затем вы дважды щелкаете по событию для добавления его в ваш выделенный код.

Большинство событий, добавляемых вами в элемент управления, будут событиями типа Action. Это события, которые основаны на действиях пользователя (таких как нажатие кнопки). Существуют, однако, и другие события. Эти события обычно используются в спе­циальных целях и только разработчиками элементов управления. На рис. 14.26 показано добавление события в действие Click кнопки Save.

Реакция на события

Конструирование вашего пользовательского интерфейса

Для создания хорошего Web-интерфейса пользователя требуется многое. Настолько многое, что перед тем как начать перетаскивать элементы управления на формы, необходимо серь­езное планирование. Первым делом необходимо обдумать все варианты, потребности поль­зователей, а также ваши требования к сопровождению. Затем всю эту информацию нужно свести в некий план конструирования. Ваш план конструирования должен содержать сле­дующее.

□    Определить тип информации и активности пользователей, которые должен поддержи­вать ваш сайт. Вы можете сделать список типов экранов вашей системы. Например, воз­можно, у вас будут страницы, которые: отображают данные отчетов; позволяют пользователям выполнять ввод данных; делают поиск, и т. д. Это поможет вам при определении стилевых элементов, требующихся вашему сайту.

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

□    Определить ключевые области вашего сайта и то, как пользователи будут перемещаться между ними. Это часто называется таксономией сайта (или картой сайта). Описание: C:\Users\Артём\Desktop\media\image342.jpeg

□    Определить элементы, которые должны присутствовать на всех страницах. Это могут быть элементы навигации, логотипы, элементы дизайна, информация нижних колонти­тулов и т. д. Например, вы можете свести ключевые области вашего сайта в меню верх­него уровня, которое должно появляться на всех страницах.

□    Определить стилевые элементы вашего сайта. Или, по крайней мере, определить те эле­менты, которые необходимо стилизовать. Например, вы можете решить, что вам нужен согласованный способ показа заголовков страниц, элементов навигации, кнопок, заго­ловков столбцов, табличных данных и т. д. Составление такого списка позволяет вам спланировать все заранее. Вы можете также передать этот список дизайнеру, и он раз­работает стили для приложения.

□    Решить, будете ли вы поддерживать различные темы или настраиваемые пользователем опции. Например, вы можете модифицировать ваш сайт в зависимости от пользователя, получившего к нему доступ. Возможно, вам понадобится также разрешить пользовате­лю настройку компоновки и содержимого. В этом случае вам следует предусмотреть использование портальных элементов управления.

Эти и многие другие решения составляют часть планирования хорошего пользовательского Web-интерфейса. Продумывание таких вещей заранее с лихвой оправдается впоследствии, когда оно сэкономит вам массу времени на ненужных переделках.

Когда у вас будет план, то Visual Studio 2008 будет готова помочь вам. Она позволяет вам создавать главные страницы для определения общего внешнего вида. Имеются элементы управления ссылками и меню. Вы можете поддерживать темы при помощи файлов обложек и таблиц стилей. Вы можете даже позволить пользователям настраивать компоновку при помощи WebParts. Следующие разделы демонстрируют множество функциональных воз­можностей ASP.NET, которые используются при создании пользовательских Web-интерфейсов.

Определение компоновки страницы и размещение элементов управления
Настройка позиционирования элементов управления
Создание общего внешнего вида
Стили и основы таблиц стилей
Встроенный стиль

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.