Поделиться через


ControlAdapter Класс

Определение

Настраивает отрисовку для производного элемента управления, к которому подключен адаптер, для изменения разметки или поведения по умолчанию для определенных браузеров и является базовым классом, от которого наследуются все адаптеры управления.

public ref class ControlAdapter abstract
public abstract class ControlAdapter
type ControlAdapter = class
Public MustInherit Class ControlAdapter
Наследование
ControlAdapter
Производный

Комментарии

Адаптеры управления — это компоненты, которые переопределяют определенные Control методы и события класса в своем жизненном цикле выполнения, чтобы разрешить обработку в браузере или разметке. Платформа .NET Framework сопоставляет один производный адаптер Control элемента управления с объектом для каждого запроса клиента.

Адаптер изменяет элемент управления для определенного браузера или класса браузеров или выступает в качестве произвольного фильтра для некоторых возможностей. Обычно адаптер определяется языком разметки, который использует браузер (например, XHTML или HTML 3.2). Большая часть адаптируемости в поведении отрисовки может быть инкапсулирована в специализированных классах, производных от HtmlTextWriter класса. Таким образом, скорее всего, один адаптер может использоваться для ряда поведения классов браузера или включения адаптируемости в HtmlTextWriter классы может использовать адаптер элемента управления ненужным.

Адаптер для класса управления применяется ко всем элементам управления, наследуемым от этого класса, если только не присутствуют более специализированные адаптеры. Например, адаптер класса BaseValidator можно использовать для всех Validator объектов.

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

Сами элементы управления не обязательно требуют адаптера. Если элементы управления расширены по композиции, обычно дочерние адаптеры элементов управления достаточно.

Каждый элемент управления имеет явные сопоставления с адаптерами с помощью файлов определения браузера. Таким образом, любой доступ к Control.Adapter свойству использует HttpBrowserCapabilities объект, извлеченный из файлов определения браузера, для выполнения поиска сопоставления адаптера для управления.

Во время обработки платформа .NET Framework перехватывает вызовы переопределиваемых методов элемента управления, который может быть целевым. Если адаптер управления подключен, платформа .NET Framework вызывает связанные методы адаптера.

Адаптер выполняет отрисовку Render элемента управления с помощью метода. Если переопределено, возможно, не следует вызывать реализацию базового класса, Render так как она выполняет обратный вызов метода Control.Render . Это может привести к отрисовке дважды, один раз адаптером и один раз элементом управления.

Базовый Render метод возвращает метод Control.Render элемента управления. Таким образом, если переопределить Render, не следует вызывать реализацию базового класса, если не реализованная Control.Render отрисовка не является дополнением к тому, что предоставляется элементом управления.

Необходимо убедиться, что платформа .NET Framework выполняет перехват для адаптеров дочерних элементов управления. Это можно сделать, вызвав базовый RenderChildren метод, который вызывает Control.RenderChildren метод элемента управления из Render переопределения.

EndRender Методы BeginRender вызываются элементом управления непосредственно перед и после (соответственно) вызывает Render метод. Если предварительные и пост-отрисовки являются единственными задачами обработки, необходимыми для конкретного браузера, и это BeginRenderEndRender может привести к необходимости переопределения Render. Поведение BeginRender и EndRender методы по умолчанию — вызов соответствующих методов HtmlTextWriter.

Для поддержания собственных сведений о состоянии адаптер управления может переопределить SaveAdapterControlStateSaveAdapterViewStateLoadAdapterControlStateметоды , и LoadAdapterViewState методы. SaveAdapterControlState, , SaveAdapterViewStateLoadAdapterControlStateи LoadAdapterViewState вызывается при сохранении и загрузке состояний закрытого элемента управления и представления соответственно.

Методы OnInit, OnPreRenderOnLoadи OnUnload базовые методы возвращаются к соответствующим Control методам класса. Таким образом, любой из этих ControlAdapter методов, переопределенных, должен вызывать их базовые методы; в противном случае событие, связанное с методом Control класса, не будет вызываться.

Элементы управления и адаптеры при необходимости реализуют IPostBackDataHandler интерфейсы и IPostBackEventHandler элементы управления. Платформа .NET Framework определяет, существует ли адаптер и реализует ли адаптер эти интерфейсы. Если это так, адаптер должен переопределить LoadPostDataRaisePostDataChangedEventметоды и RaisePostBackEvent методы по мере необходимости. Если данные обратной передачи не распознаны в адаптере, он должен вернуться к элементу управления, чтобы обработать его. Последующие обработчики событий также должны вернуться к элементу управления.

Примечания для тех, кто реализует этот метод

При наследовании от ControlAdapter класса элемент управления, требующий общих функциональных возможностей адаптера, должен иметь соответствующий базовый класс адаптера, названный в шаблоне ControlTypeAdapter (например, TextBoxAdapter). Адаптер должен возвращать строго типизированный экземпляр элемента управления через его Control свойство.

  1. Адаптеры управления для заданного типа элемента управления и языка разметки должны быть названы в шаблоне MarkupControlTypeAdapter (например, XhtmlTextBoxAdapter). Адаптеры для элемента управления должны быть реализованы в Adapters подназовом пространстве.

Адаптеры управления должны наследовать от соответствующего базового класса и следовать той же модели наследования, что и элемент управления. Например, адаптер для элемента управления, наследуемого от Control базового класса, должен наследоваться от ControlAdapter класса или соответствующего ControlTypeAdapter класса.

Все специализированные адаптеры должны быть определены для специализированного элемента управления во всех узлах устройства в файлах configuration .browser.

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

Можно имитировать переопределение защищенных методов событий в элементе управления, например OnClick(EventArgs) методом метода LinkButton. Сначала создайте класс адаптера с методом OnClick . Затем создайте новый элемент управления, производный от LinkButton метода и переопределите OnClick(EventArgs) его. Переопределенный OnClick(EventArgs) метод вызывает OnClick метод адаптера. Объект адаптера доступен через защищенное Adapter свойство Control класса. Свойство Adapter элемента управления заключается null в отсутствии связанного адаптера, поэтому любой код должен проверять это условие перед вызовом методов адаптера.

Конструкторы

Имя Описание
ControlAdapter()

Инициализирует новый экземпляр класса ControlAdapter.

Свойства

Имя Описание
Browser

Возвращает ссылку на возможности браузера клиента, выполняющего текущий HTTP-запрос.

Control

Возвращает ссылку на элемент управления, к которому подключен этот адаптер элемента управления.

Page

Возвращает ссылку на страницу, в которой находится элемент управления, связанный с этим адаптером.

PageAdapter

Возвращает ссылку на адаптер страницы для страницы, в которой находится связанный элемент управления.

Методы

Имя Описание
BeginRender(HtmlTextWriter)

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

CreateChildControls()

Создает целевые дочерние элементы управления для составного элемента управления.

EndRender(HtmlTextWriter)

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

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
LoadAdapterControlState(Object)

Загружает сведения о состоянии адаптера, сохраненные SaveAdapterControlState() во время предыдущего запроса на страницу, в которой находится элемент управления, связанный с этим адаптером управления.

LoadAdapterViewState(Object)

Загружает сведения о состоянии представления адаптера, сохраненные SaveAdapterViewState() во время предыдущего запроса на страницу, в которой находится элемент управления, связанный с этим адаптером управления.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnInit(EventArgs)

Переопределяет OnInit(EventArgs) метод для связанного элемента управления.

OnLoad(EventArgs)

Переопределяет OnLoad(EventArgs) метод для связанного элемента управления.

OnPreRender(EventArgs)

Переопределяет OnPreRender(EventArgs) метод для связанного элемента управления.

OnUnload(EventArgs)

Переопределяет OnUnload(EventArgs) метод для связанного элемента управления.

Render(HtmlTextWriter)

Создает целевую разметку для элемента управления, к которому подключен адаптер элемента управления.

RenderChildren(HtmlTextWriter)

Создает целевую разметку для дочерних элементов управления в составном элементе управления, к которому подключен адаптер элемента управления.

SaveAdapterControlState()

Сохраняет сведения о состоянии элемента управления для адаптера управления.

SaveAdapterViewState()

Сохраняет сведения о состоянии представления для адаптера управления.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел