Инструкции: создание элемента управления визуализацией поля
Дата последнего изменения: 5 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
Класс элементов управления визуализацией может использоваться совместно с одним или несколькими шаблонами визуализации для вывода настраиваемых полей в режиме создания, правки или отображения.
Класс элементов управления отображением должен наследоваться от BaseFieldControl или от одного из классов в Microsoft SharePoint Foundation, производных от него. Этот класс компилируется в ту же сборку, что и настраиваемый класс полей.
Рекомендуется использовать следующее соглашение об именовании при создании настраиваемых классов полей, производных прямо или косвенно от класса BaseFieldControl:
имя_типа_поляFieldControl
— например, TargetDateFieldControl или RegularExpressionFieldControl. (Производные от BaseFieldControl классы, которые поставляются с SharePoint Foundation, были созданы до принятия этого соглашения об именовании, и они следуют шаблону имя_типа_поляField, например DateTimeField.)
Объект, создающий экземпляр элемента управления отображением, содержит в своем свойстве Field ссылку на отображаемый им элемент поля. Последний содержит ссылку на его элемент управления в своем свойстве FieldRenderingControl. Как подсказывают эти обратные ссылки, эти два объекта являются паттернами. Объект, производный от SPField, обрабатывает взаимодействие с базой данных контента, а элемент управления отображением, производный от BaseFieldControl, обрабатывает взаимодействие с пользователями и отображением поля в пользовательском интерфейсе.
Шаблон отображения
С каждым элементом управления визуализацией связан по крайней мере один шаблон визуализации. Объект RenderingTemplate определяется как элемент RenderingTemplate в файле .ascx, находящемся в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\controltemplates. Шаблон визуализации указывается значением ID в свойстве TemplateName элемента управления визуализацией или в свойстве DisplayTemplateName.
Примечание |
---|
Класс BaseFieldControl наследует из TemplateBasedControl члены, позволяющие ему подключаться к нескольким шаблонам отображения и переключаться между ними на основе контекста отображения. |
Дополнительные сведения о шаблонах отображения см. в разделе Практическое руководство. Создание шаблонов отображения полей.
Метод CreateChildControls
Класс элементов управления визуализацией переопределяет метод CreateChildControls, наследуемый от Control. Основная часть работы по визуализации приходится на шаблон, поэтому методу CreateChildControls остается сделать гораздо меньше, чем в случае классического класса элементов управления ASP.NET. Обычно он осуществляет только конечную обработку дочерних элементов управления. Например, он может назначать значение по умолчанию дочернему элементу управления в режиме создания или назначать текущее значение поля дочернему элементу управления в режимах правки и отображения. Вряд ли переопределения метода CreateChildControls будут содержать много операторов new, создающих дочерние элементы управления (разумеется, при условии наличия опыта программирования в ASP.NET).
Логика проверки данных иногда включена в CreateChildControls. Дополнительные сведения о настраиваемой проверке данных полей см. в разделе Проверка данных в настраиваемых полях.
См. также
Задачи
Пример: создание типа настраиваемого поля
Концепции
Инструкции. Создание настраиваемого класса поля
Проверка данных в настраиваемых полях
Практическое руководство. Создание определения настраиваемого типа поля
Практическое руководство. Создание шаблонов отображения полей