Инструкции. Создание настраиваемого класса поля
Дата последнего изменения: 9 марта 2015 г.
Применимо к: SharePoint Foundation 2010
Чтобы создать класс типа настраиваемого поля, необходимо произвести этот класс либо из класса SPField, либо из одного из классов, перечисленных в следующей таблице, каждый из которых наследует от класса SPField.
Примечание |
---|
Существуют также другие классы типов полей (классы с именами типа SPField*), но они обрабатываются Microsoft SharePoint Foundation особыми способами, и получение из них новых классов не поддерживается. |
При создании классов настраиваемых полей, которые прямо или косвенно производятся из класса SPField, рекомендуется использовать следующий контекст именования :
имя_типа_поляField
Примеры правильно именованных классов: TargetDateField и RegularExpressionField. (Классы, производные от SPField, которые поставляются с SharePoint Foundation, были созданы до определения данного контекста именования, и для их имен использовался шаблон SPFieldимя_типа_поля, например SPFieldDateTime.)
Классы настраиваемых полей можно производить из следующих членов класса SPField
Классы типов настраиваемых полей, не наследующие характеристики напрямую от класса SPField, должны производиться от одного из следующих классов.
Класс |
Описание |
---|---|
Представляет тип поля Boolean. |
|
Представляет тип поля выбора. |
|
Представляет тип поля денежной единицы. |
|
Представляет тип поля "дата-время". |
|
Представляет поле подстановки. Значение поля для объекта SPFieldLookup содержится в объекте SPFieldLookupValue. |
|
Представляет тип поля с несколькими вариантами для выбора. Значение поля для объекта SPFieldMultiChoice содержится в объекте SPFieldMultiChoiceValue. |
|
Представляет тип поля с несколькими столбцами. Значение поля для объекта SPFieldMultiColumn содержится в объекте SPFieldMultiColumnValue. |
|
Представляет тип многострочного текстового поля. |
|
Представляет тип числового поля. |
|
Представляет тип поля с оценками. Значение поля для объекта SPFieldRatingScale содержится в объекте SPFieldRatingScaleValue. |
|
Представляет однострочное текстовое поле. |
|
Представляет тип поля URL-адреса. Значение поля для объекта SPFieldUrl содержится в объекте SPFieldUrlValue. |
|
Представляет пользователя SharePoint Foundation. |
Примечание |
---|
Дополнительные сведения о создании классов значений настраиваемых полей см. в статье Создание настраиваемого класса значения поля. |
Задание поведения настраиваемого поля
После выбора класса поля, из которого будет производиться тип настраиваемого поля, можно выбрать члены этого класса, которые требуется переопределить. Поскольку большая часть свойств и поведений, делающая тип поля уникальным, содержится в его классе, имеется богатый набор семантики переопределения, который становится доступным после простого выбора класса, производного от SPField, который будет переопределен новой реализацией.
Например, класс SPField содержит следующие члены, чью реализацию при необходимости можно переопределить при разработке типов настраиваемых полей.
Примечание |
---|
Для большинства членов, приведенных в этом разделе, реализация по умолчанию класса SPField не предназначена для выполнения полезной работы; например, GetFieldValue просто возвращает то, что было в него передано, а GetValidatedString просто вызывает метод ToString класса этого значения (который не содержит никакой логики проверки). По этой причине, если класс типа настраиваемого поля производится напрямую из класса SPField, то необходимо переопределить какие-либо его члены, необходимые для достижения поставленной цели. |
Члены класса SPField, которые необходимо переопределять чаще всего
Члены класса SPField |
Описание |
---|---|
Возвращает элемент управления, который может использоваться для визуализации поля в формах просмотра, изменения и создания и на любой странице, использующей элементы управления поля. Объект, создающий элемент управления визуализацией, хранит в своем свойстве Field обратную ссылку на объект поля, который он визуализирует. Как предлагают эти обратные ссылки, данные два объекта являются партнерами. Объект, производный от SPField, обрабатывает взаимодействие с базой данных контента, а элемент управления визуализацией, производный от BaseFieldControl, обрабатывает взаимодействие с пользователями и визуализацию поля в пользовательском интерфейсе. Однако следует заметить, что необязательно отображать настраиваемое поле с помощью элемента управления визуализацией: это поле можно также отображать с помощью RenderPattern, заданного в определении поля, и в этом случае свойство FieldRenderingControl может иметь значение null. Обычно элемент управления визуализацией используется для отображения поля в режимах создания и изменения, а шаблон визуализации используется для отображения поля в режиме просмотра. При использовании элемента управления визуализацией класс настраиваемого поля должен переопределить метод доступа get свойства FieldRenderingControl следующим стандартным шаблоном кода:
Атрибут permission гарантирует, что это свойство сможет читать только код с разрешением на использование объектной модели SharePoint Foundation. Строка, присваивающая внутреннее имя объекта поля свойству FieldName, также устанавливает свойство Field в объект поля. Это гарантирует, что класс имя_типа_поляFieldControl будет знать, какой объект визуализируется. |
|
Возвращает элемент управления, который можно использовать для визуализации поля в формах просмотра, изменения и создания в мобильных приложениях. |
|
Возвращает значение поля для визуализации в режиме изменения. Этот метод используется для форм редактирования и создания. |
|
Если этот метод переопределяется в производном классе, то возвращает проверенное значение поля. Следует переопределять этот метод для создания пользовательских проверок и логики сериализации данных (базовый метод и множество классов SharePoint Foundation, производных от него, не предоставляют логику проверки). Этот метод может последовательно использовать метод ToString объекта значения поля для преобразования объекта значения поля в строку. Типичное переопределение должно:
См. статью Проверка данных в настраиваемых полях для получения дополнительных сведений и примера переопределения GetValidatedString. |
|
Переопределение для задания логики типа настраиваемого поля после добавления поля в список. |
|
Переопределение для задания логики типа настраиваемого поля после обновления поля. |
|
Переопределение для задания логики типа настраиваемого поля до удаления поля из списка. |
Члены класса SPField, наиболее часто переопределяемые при использовании сложных настраиваемых типов данных
Существует еще несколько членов класса SPField, которые может понадобиться переопределить, когда типу поля требуется сложный настраиваемый тип данных, отличающийся от типа данных родительского типа поля. Такие настраиваемые типы данных задаются с помощью классов значений настраиваемых полей. Дополнительные сведения см. в статье Создание настраиваемого класса значения поля. (Может также потребоваться переопределить эти члены в других ситуациях, даже когда не создаются настраиваемые типы данных.)
Члены класса SPField |
Описание |
---|---|
Возвращает как строку значение по умолчанию, которое может использоваться для поля, когда какой-либо элемент списка не имеет значения в этом поле. |
|
Возвращает значение по умолчанию, которое может использоваться для поля, когда какой-либо элемент списка не имеет значения в этом поле. |
|
Возвращает тип значения поля. |
|
Возвращает значение поля как объект. |
|
Возвращает значение данных поля как строку. |
|
Возвращает значение данных поля как строку в формате HTML. Это значение поля в формате HTML наиболее часто используется для визуализации значения поля непосредственно на странице. Например, оно используется на странице истории версий элемента списка. Однако это значение поля в формате HTML не используется в форме просмотра. Поле в форме просмотра обычно визуализируется из элемента Collaborative Application Markup Language (CAML)DisplayPattern в файле типа поля fldtype*.xml. |
|
См. примечание в разделе Задание поведения настраиваемого поля. |
|
Возвращает значение для просмотра данных поля, для представления элемента управления поля во время разработки в режиме просмотра и изменения. |
См. также
Задачи
Пример: создание типа настраиваемого поля
Концепции
Практическое руководство. Создание настраиваемого типа поля