Программирование обработок в веб-приложениях tutorial 03

asp

Задание 1 Реализация централизованных обработчиков событий для элементов управления

Задание 2 Определение возможностей браузера и установка свойств заголовка страницы

Задание 3  Обработка исключений

Сценарий лабораторной работы

В рамках текущего этапа развития системы B2C предприятия Adventure-Works нужно провести изменения следующих веб-страниц:

Feedback.aspx, для которой создать централизованный обработчик событий для события Click двух объектов Button.

Contact.aspx, для которой создать обработки события для события не по умолчанию Command объектов Button.

Diagnostics.aspx, на которой отобразить полученные свойства объекта Browser. Также необходимо использовать доступ к объекту Page.Header.

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

Также необходимо изменить файл Web.config чтобы установить обработчик ошибок на уровне приложений, перенаправив все необработанные исключения на страницу customErrors.aspx.

Задание 1 Реализация централизованных обработчиков событий для элементов управления

В этом задании нужно создать централизованный обработчик события для нескольких объектов Button на веб-странице Feedback.aspx. Централизованный обработчик события будет определить, какая кнопка была нажата во время выполнения. Он будет затем передавать соответствующую информацию (в зависимости от того, какая кнопка была нажата) на веб-страницу FeedbackForm.aspx.

Кроме того нужно создать обработчик события Command для объектов Button на странице Contact.aspx. Событие Command должно будет в процессе выполнения программы определять значения параметра CommandEventArgs, и по-разному отображать контактную информацию, в зависимости от свойств этого параметра.

1. Установить и открыть проект веб-сайта предприятия Adventure-Works

а) Установить заготовку веб-сайта предприятия Adventure-Works:

  • с помощью проводника Windows открыть папку Adventure-Works, содержащую файлы веб-сайта,  созданного на 1-й лабораторной работе (расположена на личном ресурсе согласно пути, указанном при создании проекта).
  • скопировав в папку файлы с сетевого ресурса \\2-213-s2\Хранилище\Программы\Microsoft\MSLearning\2543\Unit02\Labfiles\Starter

б) С помощью проводника Windows перейти в папку Adventure-Works, созданную Visual Studio для проектов на личном ресурсе, например: C:\Documents and Settings\O.O.Syniavska\Мои документы\Visual Studio 20xx\Projects и дважды кликнуть файл Adventure-Works.sln.

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

а) Дважды кликнуть файл Feedback.aspx в окне обозревателя решений. Файл открывается в окне просмотра исходного кода.

б) Переключиться в режим конструктора, а затем просмотреть макет страницы. Обратите внимание, что на странице есть две кнопки обеспечения обратной связи для сайта. Верхняя кнопка имеет идентификатор ID — feedbackWeb,  нижняя кнопка идентификатор ID  — feedbackProducts.

в) В дереве Обозревателя решений кликнуть правой клавишей на Feedback.aspx и выберать пункт Перейти к коду.

г) В классе  Feedback добавить защищенный метод, имеющий следующее определение:

  • имя метода: feedback_CIick
  • тип возвращаемого значения: отсутствует (void)
  • параметр 1: имя — sender тип – object;
  • параметр 2: имя — е тип – EventArgs:

Эта процедура будет использована в качестве обработчика события Click обеих кнопок формы:

protected void feedback_Click(object sender, EventArgs e)

{

}

д) Добавить в метод feedback_Click код для выполнения следующих действий:

  • Объявить переменную btnClicked типа Button, а затем присвоить ей значение объекта sender, явно преобразовав его в Button:

Button btnClicked = (Button)sender;

  • Если свойство ID переменной Button равно «feedbackWeb», вызовать метод Server.Transfer, передавая ему в качестве параметра строку «FeedBackForm.aspx?Department=WEB»:

if (btnClicked.ID == «feedbackWeb»)

Server.Transfer(«FeedBackForm.aspx?Department=WEB»);

  • Если свойство ID переменной Button равно «feedbackProducts», вызовать метод Server.Transfer, передавая ему в качестве параметра строку «FeedBackForm.aspx?Department= PRODUCTS»:

if (btnClicked.ID == «feedbackProducts»)

Server.Transfer(«FeedBackForm.aspx?Department=PRODUCTS»);

Метод Server.Transfer выполняет перенаправления серверных операций.

е) В окне обозревателя решений раскрыть подчиненные элементы FeedBackForm.aspx, а затем дважды кликнуть файл с программным кодом для этой страницы (FeedBackForm.aspx.сs). Появится закладка с кодом этой страницы.

ж) Просмотрите код, обращая особое внимание на обработчик события Load страницы. Этот метод определяет, каким будет значение параметра Department объекта QueryString, а затем, в зависимости от значения этого параметра, выводит индивидуальные запрос для обратной связи. Код, который был написан для обработки события Click кнопок обратной связи, устанавливает это значение в WEB или PRODUCTS, в зависимости от того, какая кнопка была нажата.

3.Определить метод feedback_Click в качестве обработчика события Click для кнопок обратной связи.

а) Открыть веб-страницу Feedback.aspx в режиме конструктора. Теперь нужно указать, что обе кнопки должны использовать только что написанную процедуру для их события Click.

б) Кликните кнопку Просьба дать отзыв о нашем веб-сайте, чтобы обозначить ее как активную.

в) В окне Свойства нажмите кнопку События (значок молния).

г) Для события Click кликнуть стрелку раскрывающегося списка, а затем в списке кликните feedback_Click.

д) Применяя аналогичные действия установить метод feedback_Click как обработчик события Click для кнопки Просьба дать отзыв о нашей продукции.

4.Создать обработчик события Command элементов управления Button.

а)  Открыть веб-страницу Contact.aspx в режиме конструктора. Здесь нужно добавить две новые кнопки, и написать один метод, который обрабатывает событие  Command для обеих кнопок.

б) Под текстом Вы можете связаться с нами любым из следующих способов: добавить две кнопки.

в) Выберите первую кнопку, которую вы только что добавили на странице.

г) Установить свойство Text выбранной кнопки в Сортировать по городам, свойство ID в  btnSortCity, свойство Width  – 180px, свойство CommandName – SortByCity.

д) Выберите вторую кнопку, которую вы только что добавили на странице.

е) Установить свойство Text выбранной кнопки в Группировать по регионам, свойство ID в btnGroupRegion, свойство Width  – 180px,  свойство CommandName – GroupByRegion.

ж) Открыть файл с программным кодом веб-страницы Contact.aspx

З) В классе Contact добавить защищенный метод, имеющий следующее определение:

  • имя метода: SortGroup_Command
  • тип возвращаемого значения: отсутствует (void)
  • параметр 1: имя — sender тип – object;
  • параметр 2: имя — е тип — CommandEventArgs.

Эта процедура будет использована в качестве обработчика события Command обеих кнопок формы. Обратите внимание, что сигнатура обработчика события немного отличается от обработчика события Click, который вы создали ранее. Этот метод принимает параметр типа CommandEventArgs, а обработчик события Click – параметр типа EventArgs:

protected void SortGroup_Command (object sender, CommandEventArgs e)

{

}

и) В методе SortGroup_Command добавить структуру switch, чтобы определить свойство CommandName объекта е:

switch (e.CommandName)

{

case «SortByCity»:

break;

case «GroupByRegion»:

break;

default:

break;

}

к) Для case-варианта SortByCity добавить код, устанавливающий свойство Text  объекта lblAddresses в значение равное   конкатенации следующих переменных и литерального текста:

  • addressBarcelona
  • «<br /><br />»
  • addressDublin
  • «<br /><br />»
  • addressLondon
  • «<br /><br />»
  • addressNewYork
  • «<br /><br />»
  • addressParis
  • «<br /><br />»
  • addressSeattle
  • «<br /><br />»
  • addressMorzine

л) Для GroupByRegion добавить case-варианты,  в которых написать код, устанавливающий свойство Text  объекта lblAddresses в значение равное   конкатенации следующих переменных и литерального текста:

  • «</b »Europe</b><hr />»
  • addressBarcelona
  • «<br /><br />»
  • addressDublin
  • «<br /><br />»
  • addressLondon
  • «<br /><br />»
  • addressSumy
  • «<br /><br /><b>USA</b>hr />»
  • addressNewYork
  • «<br /><br />»
  • addressParis
  • «<br /><br />»
  • addressSeattle

На самом деле, такие данные как адресная информация обычно жестко не кодируется. Вместо этого, их можно получить из базы данных, или использовать для отображения информации другой элемент управления, такой как DataList.  Однако, одной из целей данной лабораторной работы является изучение обработки событий Command объектов Button.

5Определить метод SortGroup_Command

в качестве обработчика события Command элемента управления Button.

а)  Переключиться в режим конструктора страницы Contact.aspx.

б) Использовать окно Свойств для установки события Command кнопки Сортировать по городам в значение SortGroup_Command.

в) Использовать окно Свойств для установки события Command кнопки Группировать по регионам в значение SortGroup_Command.

6Проверить функциональность созданных обработчиков событий.

а)  Нажать клавишу Ctrl+F5 для запуска приложения с выключенным отладчиком.

б) Когда домашняя страница веб-сайта появляется в Internet Explorer, кликнуть гиперссылку Обратная связь под надписью Службы веб-сайта на левой панели.

в) Кликнуть Просьба дать отзыв о нашем веб-сайте. Должна появится страница обратной связи с надписью Adventure Works: Отзывы о веб-сайте.

г)  В текстовом поле Ваши комментарии наберите набрать: Прекрасный сайт! И кликнуть Подтвердить.

д) Снова кликнуть гиперссылку Обратная связь.

е) Кликнуть Просьба дать отзыв о нашей продукции. Должна появится страница обратной связи с надписью Adventure Works: Отзывы о продукции.

ж) В текстовом поле Ваши комментарии наберите набрать: Великолепная продукция! И кликнуть Подтвердить.

з) Кликнуть гиперссылку Наши контакты под надписью Об Adventure Works на левой панели.

и) Кликнуть Сортировать по городам. Код, который был добавлен в обработчике события Command элемента управления Button, отображает контактные адреса в алфавитном порядке по городам.

к) Кликнуть Группировать по регионам. Код, который был добавлен в обработчике события Command элемента управления Button, отображает контактные адреса в алфавитном порядке по городам и группирует их по континентам.

л) Закрыть Internet Explorer.