Опубликован: 25.09.2008 | Доступ: свободный | Студентов: 3223 / 516 | Оценка: 4.32 / 3.98 | Длительность: 18:50:00
ISBN: 978-5-94774-991-5
Лекция 7:

Навигация по Web-приложению

< Лекция 6 || Лекция 7: 12345 || Лекция 8 >

Элемент управления Wizard

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

Размещенный на странице элемент Wizard содержит кнопки навигации и боковую панель, включающую все стадии, которые в нем определены ( рис. 7.13).

Пример размещения на странице элемента Wizard

Рис. 7.13. Пример размещения на странице элемента Wizard

Боковую панель можно спрятать. Это необходимо сделать в том случае, когда нужно, чтобы пользователь не мог пропустить хотя бы один шаг и изменить последовательность выполняемых действий. Для того чтобы отключить боковую панель, необходимо установить свойство DisplaySideBar равным false.

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

Для добавления шагов в Wizard необходимо открыть свойство WizardSteps, а затем в открывшемся окне WizardStep Collection Editor добавить или удалить нужное количество шагов ( рис. 7.14).

Окно добавления и настройки шагов элемента Wizard

Рис. 7.14. Окно добавления и настройки шагов элемента Wizard

Каждому шагу соответствует свой набор свойств. Наиболее важными из них являются следующие:

Title Имя шага, соответствующее тексту ссылок в боковой панели.
StepType Тип шага; может принимать значения Auto, Complete, Finish, Start, Step ; определяет тип кнопок навигации, которые будут показаны для данного шага. Например, в случае установки значения Auto тип шага определяется на основании позиции в коллекции; это означает, что для первого шага будет установлена кнопка Start, для последнего - Finish, а для всех промежуточных шагов - Step. В случае установки значения Step будут отображаться кнопки Next и Previous и т. д.
AllowReturn Определяет, может ли пользователь возвращаться к этому шагу. Если значение свойства установлено равным false, при переходе к следующему шагу пользователь уже не может вернуться к предыдущему.

В качестве примера создадим аналог примера регистрации пользователя, рассмотренного ранее, с использованием элемента MultiView. Для этого разместим внутри страницы элемент Wizard и определим для него следующие свойства:

  1. Добавим необходимое количество шагов и установим для них значения свойства Title, как показано на рис. 7.15.
    Добавление шагов создаваемого мастера регистрации

    Рис. 7.15. Добавление шагов создаваемого мастера регистрации
  2. Установим значения свойств DisplaySideBar=false, CancelButton Text=Отмена, FinishCompleteButtonText=Готово, FinishPreviousButton Text=Предыдущий, StartNextButtonText=Следующий>, StepNextButton Text=Следующий>, StepPreviousButtonText=<Предыдущий.
  3. Добавим содержимое первого шага. Для этого установим курсор внутри области содержимого, как показано на рис. 7.16, и добавим таблицу, аналогичную таблице "Регистрация элемента MultiView " предыдущего примера.
    Добавление содержимого очередного шага мастера регистрации

    Рис. 7.16. Добавление содержимого очередного шага мастера регистрации
  4. Перейдем к следующему шагу элемента Wizard. Для этого необходимо ввести его значение в свойство ActiveStepIndex. Если значение этого свойства равно -1, будет отображаться первый шаг последовательности, т.к. это значение соответствует индексу шага по умолчанию. Первый шаг будет отображаться также, если значение свойства ActiveStepIndex будет равно 0. Для перехода ко второму по счету шагу установим значение этого свойства равным 1.
  5. Введем содержимое второго шага, которое соответствует таблице "Контрольный вопрос элемента MultiView " предыдущего примера.
  6. Аналогичные действия повторим для третьего шага.

Результат проделанной работы и шаги мастера представлены на рис. 7.17.

Добавление содержимого очередного шага мастера регистрации

увеличить изображение
Рис. 7.17. Добавление содержимого очередного шага мастера регистрации

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

ActiveStepChanged Возникает в момент перехода к следующему либо предыдущему шагу. Переход может быть осуществлен либо в результате щелчка пользователя по кнопке навигации, либо в результате изменения значения свойства ActiveStepIndex. Т. к. переход к следующему либо предыдущему шагу возможен различными способами, рекомендуется всегда использовать это событие для отслеживания момента перехода.
CancelButtonClick Возникает в момент нажатия пользователем на кнопку Cancel (Отмена). Данную кнопку можно добавить в отображение мастера (по умолчанию она не отображается), установив значение свойства DisplayCancelButton равным true. Если задано значение свойства CancelDestinationPageUrl, при нажатии на кнопку Cancel будет происходить переход к странице, Url которой указан в данном свойстве.
FinishButtonClick Возникает в момент нажатия на кнопку Finish.

Очень полезную функциональность предоставляет метод GetHistory, возвращающий коллекцию объектов WizardStepBase, представляющих собой шаги, которые уже прошел пользователь. Первый объект коллекции представляет последний шаг, к которому обращался пользователь, второй - предпоследний и т. д.

Краткие итоги

Современные Web-приложения представляют собой сложную совокупность взаимосвязанных страниц. При разработке такого приложения необходимо уделять внимание не только дизайну, но и организации удобной навигации.

При реализации больших Web-приложений, содержащих большое количество страниц, целесообразно использовать карты сайта, предоставляющие удобный механизм определения структуры страниц приложения в виде XML-файла достаточно простой структуры. Реализация самого механизма навигации внутри приложения реализуется с применением стандартных элементов управления, таких как SiteMapPath, Menu, TreeView. Используя в качестве источника данных XML-файл, содержащий описание структуры приложения, данные элементы управления позволяют отображать ее, а также осуществлять переход к любым определенным в рамках данной структуры узлам. Каждый из элементов управления содержит уникальный набор свойств, позволяющих определить правила отображения структуры приложения, а также возможность перехода к его узлам.

Использование перечисленных выше элементов управления дает возможность реализовывать полноценную систему навигации по страницам Web-приложения без применения элементов программирования. Очень часто этих приемов оказывается достаточно для реализации навигации, однако в ряде случаев приходится прибегать к реализации системы навигации по страницам Web-приложения с использованием программных средств навигации. Это нужно в том случае, когда необходима реализация нестандартных принципов навигации. В этом случае возможна организация доступа к карте сайта посредством API-интерфейса, предоставляемого классом SiteMap.

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

< Лекция 6 || Лекция 7: 12345 || Лекция 8 >