Общие сведения об управляющих элементах-расширителях ASP.NET AJAX

Visual Studio 2010

Обновлен: Ноябрь 2007

Управляющие элементы-расширители ASP.NET AJAX расширяют клиентские возможности стандартных серверных веб-элементов управления ASP.NET. Используя один или более расширителей, можно обогатить пользовательский интерфейс стандартных серверных веб-элементов управления, таких как TextBox, Button и Panel. Например, чтобы запрашивать у пользователя подтверждение перед отправкой формы на сервер, можно использовать управляющий элемент-расширитель, добавляющий необходимую клиентскую функциональность к элементу управления Button.

Управляющие элементы-расширители ASP.NET AJAX можно добавлять в Visual Studio и работать с ними так же, как и с другими элементами управления. Можно создавать собственные управляющие элементы-расширители или получать их из других источников.

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

Bb470384.alert_caution(ru-ru,VS.100).gifВажное примечание.

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

В этом разделе содержатся следующие сведения:

Visual Studio поддерживает следующие функциональные возможности, связанные с управляющими элементами-расширителями:

  • добавление управляющих элементов-расширителей;

  • удаление управляющих элементов-расширителей;

  • установка свойств управляющего элемента-расширителя;

  • управление управляющими элементами-расширителями.

К началу

Управляющие элементы-расширители могут использоваться для расширения клиентских возможностей стандартных серверных веб-элементов управления. Не используйте управляющие элементы-расширители сами по себе. Вместо этого, присоедините их к другим серверным веб-элементам управления. Управляющие элементы-расширители присоединяются к серверному веб-элементу управления путем присваивания идентификатора расширяемого элемента свойству TargetControlID управляющего элемента-расширителя.

Работа с управляющими элементами-расширителями в Visual Studio

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

Bb470384.alert_note(ru-ru,VS.100).gifПримечание.

Набор элементов управления AJAX ASP.NET представляет собой библиотеку, поддерживаемую сообществом разработчиков. Он не является частью ASP.NET.

Добавление управляющих элементов-расширителей

Существуют следующие способы добавления управляющих элементов-расширителей к серверному веб-элементу управления в представлении конструирования.

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

  • Щелкните правой кнопкой мыши серверный веб-элемент управления и выберите команду Добавить расширитель.

  • Выберите смарт-тег Задачи кнопок, а затем команду Добавить расширитель.

    Bb470384.alert_note(ru-ru,VS.100).gifПримечание.

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

При добавлении управляющего элемента-расширителя в конструкторе свойству TargetControlID этого элемента присваивается идентификатор связываемого с ним серверного веб-элемента управления. Имя управляющего элемента-расширителя формируется на основе имени серверного веб-элемента управления, с которым он связан.

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

Управляющий элемент-расширитель, подключаемый к целевому элементу управления, не отображается на рабочей поверхности конструктора. Если управляющий элемент-расширитель не связан с целевым элементом управления или эта связь не может быть определена во время разработки, элемент-расширитель отображается на поверхности конструктора в виде местозаполнителя. Это может произойти в следующих случаях:

  • свойство TargetControlID является пустым;

  • значение свойства TargetControlID не соответствует ни одному из имеющихся элементов управления;

  • свойство TargetControlID указывает на элемент управления, который не может быть расширен с помощью управляющего элемента-расширителя.

Если управляющий элемент-расширитель связан с подходящим целевым элементом управления, Visual Studio скрывает следующие свойства управляющего элемента-расширителя в окне Свойства:

  • TargetControlID

  • EnableViewState (унаследовано от Control)

  • ID (унаследовано от Control)

Дополнительные сведения о добавлении управляющих элементов-расширителей к серверным веб-элементам управления см. в разделе Пошаговое руководство. Общие сведения об управляющих элементах-расширителях ASP.NET AJAX.

Удаление управляющих элементов-расширителей

Удалить связь между управляющим элементом-расширителем и серверным веб-элементом управления можно следующим образом.

  • В представлении Конструктор щелкните правой кнопкой мыши серверный веб-элемент управления, выберите команду Удалить расширитель, а затем выберите расширитель, который хотите удалить.

  • В представлении Конструктор выберите смарт-тег Задачи кнопки, после команду Удалить расширитель, а затем выберите расширитель, который хотите удалить.

  • Удалите разметку управляющего элемента-расширителя в представлении Исходный код.

Управляющие элементы-расширители и элемент управления ScriptManager

Управляющие элементы-расширители, производные от класса ExtenderControl, требуют наличия в составе страницы элемента управления ScriptManager. Базовый класс ExtenderControl проверяет, имеется ли в составе страницы элемент управления ScriptManager.

Однако можно создать управляющий элемент-расширитель, для которого не требуется элемент управления ScriptManager, для чего следует создать класс, непосредственно реализующий интерфейс IExtenderControl. Кроме того, при создании класса, производного от класса Control, или при расширении существующего элемента управления, производного от Control, можно самостоятельно реализовать интерфейс IExtenderControl.

Интерфейс IExtenderControl регистрирует библиотеки сценариев для элемента управления с помощью вызова метода GetScriptReferences. Он регистрирует объекты ScriptDescriptor путем вызова метода GetScriptDescriptors. Метод GetScriptDescriptors возвращает список IEnumerable объектов ScriptDescriptor.

Bb470384.alert_note(ru-ru,VS.100).gifПримечание.

При расширении существующего типа элементов управления, производного от класса WebControl, следует реализовать интерфейс IScriptControl.

Дополнительные сведения о создании управляющего элемента-расширителя ASP.NET AJAX см. в разделе Добавление клиентских возможностей серверным веб-элементам управления.

Управляющие элементы-расширители в наборе элементов управления AJAX

В следующей таблице описаны некоторые управляющие элементы-расширители AJAX, входящие в состав набора элементов управления AJAX ASP.NET.

Bb470384.alert_note(ru-ru,VS.100).gifПримечание.

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

Управляющий элемент-расширитель AJAX

Описание

CascadingDropDown

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

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

CollapsiblePanelExtender

Обеспечивает возможность добавления на веб-страницу сворачиваемых разделов.

Этот управляющий элемент-расширитель подключается к элементу управления UpdatePanel.

Можно задать серверный веб-элемент управления, способный разворачивать и сворачивать элемент управления UpdatePanel. Или же можно настроить UpdatePanel для автоматического сворачивания или разворачивания при перемещении над ним указателя мыши.

ConfirmButtonExtender

Отображает диалоговое окно подтверждения операции по щелчку элемента управления Button, но до передачи страницы или элемента управления UpdatePanel на сервер. Если пользователь отменяет операцию, передача страницы не производится.

Этот управляющий элемент-расширитель подключается к элементу управления Button.

FilteredTextBoxExtender

Не позволяет пользователю вводить определенные символы в элемент управления TextBox.

Этот управляющий элемент-расширитель подключается к элементу управления TextBox.

ModalPopupExtender

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

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

PasswordStrength

Отображает надежность пароля.

Этот управляющий элемент-расширитель подключается к элементу управления TextBox.

RoundedCornersExtender

Скругляет углы существующих элементов управления.

Этот управляющий элемент-расширитель обычно подключается к элементу управления Panel.

TextBoxWatermarkExtender

Отображает сообщение в элементе управления TextBox, когда данное текстовое поле не содержит текстового значения.

Этот управляющий элемент-расширитель подключается к элементу управления TextBox.

Установка свойств управляющего элемента-расширителя

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

При расширении серверного веб-элемента управления в окне Свойства появляется новая категория свойств — Расширители. В ней для каждого управляющего элемента-расширителя, связанного с текущим серверным веб-элементом управления, отображается новое многоуровневое свойство. Каждый управляющий элемент-расширитель предоставляет собственные уникальные свойства.

Дополнительные сведения об установке свойств серверных веб-элементов управления см. в разделе Практическое руководство. Включение окна свойств в Visual Web Developer.

Управление управляющими элементами-расширителями

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

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

Когда серверный веб-элемент управления, с которым связаны управляющие элементы-расширители, удаляется с поверхности конструктора, эти элементы-расширители удаляются вместе с ним. При изменении значения свойства ID серверного веб-элемента управления в окне Свойства значения свойств TargetControlID и ID связанных с ним управляющих элементов-расширителей изменяются соответственно.

Bb470384.alert_note(ru-ru,VS.100).gifПримечание.

Если расширитель имеет пользовательский идентификатор (например, заданный разработчиком страницы), это значение свойства ID не меняется при изменении свойства ID серверного веб-элемента управления, с которым он связан.

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

Если разметка управляющего элемента-расширителя содержит ошибку, он отображается в режиме Конструктор с сообщением "Ошибка отрисовки элемента управления". Чтобы устранить эту ошибку, исправьте разметку в режиме Исходный код.

К началу

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

Класс

Описание

ExtenderControl

Является абстрактным базовым классом для управляющего элемента-расширителя.

IExtenderControl

Определяет поведение управляющего элемента-расширителя.

К началу

Показ: