Обратимся к табл. 17.2. Обратите внимание, что большая часть элементов управления данной таблицы имеет суффикс Extender. Это означает, что данный элемент управления расширяет существующий элемент управления ASP.NET. Точнее говоря, данный элемент управления для обеспечения своей функциональности работает с другим элементом управления. Например, CalendarExtender работает с элементом управления TextBox. Те элементы управления, которые не имеют этого модификатора, существуют в библиотеке как самостоятельные элементы управления.
Инструментальный набор AJAX Toolkit значительно облегчает работу с элементами управления, а тем более с расширяющими элементами управления. Для того чтобы получить расширяющий элемент для элемента управления ASP.NET, вы можете использовать смарт-тег для данного элемента управления.
Далее описаны основные шаги для добавления всплывающего окна подтверждения для кнопки:
1. Создайте новую страницу. Убедитесь, что в верхней части вашей страницы имеется элемент управления ScriptManager. Подобно прочим элементам управления AJAX, инструментальному набору требуется ScriptManager.
2. Добавьте на страницу кнопку. Вы можете дважды щелкнуть кнопку для добавления обработчика событий. В обработчике событий вы можете настроить свойство Text кнопки на что-нибудь другое (просто чтобы убедиться, что отмена пользователем работает). Вот пример:
protected void ButtonSave_Click(object sender, EventArgs e) {
ButronSave.Text = "Saved";
3. В представлении визуального конструктора выберите кнопку и ее смарт-тег. Вы увидите здесь пункт Add Extender. Эта опция добавлена в Visual Studio инструментальным набором AJAX Control Toolkit. Пример показан на рис. 17.7. Выберите этот пункт.
Рис. 17.7. Смарт-тег Add Extender
4. Теперь вы должны увидеть диалог Choose an Extender (рис. 17.8). Здесь вы увидите список всех расширяющих элементов управления. Выберите ConfirmButtonExtender. Обратите внимание, что ID для элемента управления устанавливается автоматически (по расширяемому элементу управления). Нажмите кнопку ОК для продолжения.
5. Данный элемент управления не имеет визуального представления, поскольку он просто расширяет кнопку. Поэтому вам придется либо искать его в окне свойств, либо переключаться в совмещенное представление. Настройте в свойстве ConfirmText сообщение для подтверждения операции пользователя. Обратите также внимание, что TargetControlID расширяющего элемента управления был автоматически установлен в ID расширяемого элемента управления (в данном случае — ButtonSave).
Теперь запустите приложение. Вы должны увидеть вашу форму в том виде, который вы хотели получить. Нажмите кнопку Save и вы получите диалог подтверждения (рис. 17.9). Нажатие кнопки отмены произведет отмену обратной передачи. Нажатие ОК приведет к завершению обратной передачи на сервер.
Мы рассмотрели основы AJAX, которые встроены в Visual Studio 2008, а также и те, которые имеются в составе инструментального пакета ASP.NET AJAX Toolkit. Наша основная цель — помочь вам использовать элементы управления AJAX для создания среды пользователя. Конечно, для тех из вас, кто хочет создавать собственные элементы управления AJAX, есть еще много материала для изучения.
Так же, как и для серверных элементов управления ASP.NET, фирма Microsoft предоставила аналогичные средства и для создания серверных элементов управления ASP.NET AJAX. Для начала в Visual Studio имеется шаблон ASP.NET AJAX Server Control. Вы можете использовать его для создания серверных элементов управления, которые работают с ScriptManager и выдают свой собственный JavaScript-код клиенту. Этот процесс требует большого количества кодирования.
Кроме того, Visual Studio поставляется с библиотекой Microsoft AJAX. Эта библиотека обертывает JavaScript в легкую для использования объектно-ориентированную структуру (для тех, кто хочет встроить JavaScript в свои элементы управления и страницы). Библиотека поставляется в отладочной и окончательной версиях. Отладочная версия важна потому, что в Visual Studio 2008 есть отличная поддержка отладки клиентских скриптов.
Для тех, кто создает свои элементы управления ASP.NET AJAX, существует также мощная поддержка сообщества разработчиков. Дополнительную информацию ищите по адресам: