Отображение свойств настраиваемого типа поля
Дата последнего изменения: 3 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
Многие характеристики типов полей являются универсальными. Например, у всех типов полей есть свойство, позволяющее включать их в сортировку и принимающее значения true или false. Но у пользовательских типов полей часто есть переменные свойства, которые имеют смысл только применительно к определенной задаче и в зависимости от исходного типа данных. Рассмотрим, например, тип поля регулярного выражения, значениями которого являются строки, соответствующие указанному регулярному выражению. В этом случае условие, формулируемое регулярным выражением, будет менять от столбца к столбцу. Поэтому это выражение должно задаваться пользователями при создании столбца на основе типа поля на страницах Создать столбец сайта, Изменить столбец сайта, Создать столбец и Изменить столбец.
Визуализация свойств полей
Можно определить визуализацию свойств типа поля, создавая ASPX-страницу, которая будет выступать в роли пользовательского элемента управления — редактора полей. Этот способ позволяет реализовывать в фоновой странице элемента управления ASCX пользовательскую логику обработки данных, например сложную вычислительную логику, подстановку значений из источников данных и пользовательскую проверку данных.
Используемый в качестве редактора полей элемент управления указывается путем установки значения "FieldEditorUserControl" атрибута Name элемента Элемент Field (Field Types) в XML-файле определения типа поля. Например:
<Field Name="FieldEditorUserControl">
/_controltemplates/LookupFieldEditor.ascx
</Field>
Для конкретного класса типа поля можно указать только один элемент управления редактора полей. Если происходит наследование от класса, для которого уже указан редактор полей (например, от типов полей пользователя или подстановки), а в определении типа поля указан другой редактор, то наследование редактора от родительского класса не происходит. Чтобы унаследовать редактор полей от родительского типа, необходимо не включать элемент <Field Name="FieldEditorUserControl"> в определение типа поля или указать тот же редактор, что и в определении родительского типа поля.
Примечание |
---|
За исключением двух случаев элементы управления редактора не используются для визуализации переменных свойств типов полей, поставляемых вместе с SharePoint Foundation, на страницах Создать столбец сайта, Изменить столбец сайта, Создать столбец и Изменить столбец. (Не используется и традиционный способ визуализации свойств типа поля, описанные в приведенном ниже разделе). Вместо этого используется разметка в коде самого файла страницы, например FldNew.aspx. (К исключениям относятся типы полей подстановки и пользователей, для которых используется элемент управления редактора). По этой причине пользовательский класс поля не может наследовать данные об отображении свойств типа поля в классе SharePoint Foundation, от которого он наследуется (кроме тех случаев, когда он наследуется от типов полей подстановок или пользователя). Например если пользовательский тип поля наследуется от класса SPFieldText, то новый тип не унаследует данных об отображении текстового поля (на страницах Создать столбец сайта, Изменить столбец сайта, Создать столбец и Изменить столбец), в которых создатели или редакторы столбцов указывают максимальную длину поля. Для визуализации любого свойства типа поля из родительского класса необходимо определить собственную визуализацию с помощью пользовательского элемента управления редактора поля. Кроме вопроса о возможности наследования пользовательским классом типа поля данных от своего родительского класса, возникает вопрос, может ли сам элемент управления редактора наследовать от одного из встроенных элементов управления редактора. Ответ — "нет". Класс элемента управления редактора полей не может наследоваться от классов элементов управления LookupFieldEditor и UserFieldEditor, которые являются единственными элементами управления, поставляемыми вместе с SharePoint Foundation. Они не доступны из кода. |
Отображение свойств с помощью элемента PropertySchema
В ранних версия SharePoint Foundation разработчики не всегда использовали ASCX-элементы управления редактора для визуализации свойств типа поля. В этом разделе описывается альтернативный способ. Эти сведения призваны только помочь разработчику в отладке пользовательского типа поля, исходно разработанного для ранней версии платформы SharePoint Foundation и использующего более старый способ для визуализации свойств типа поля. Хотя этот способ все еще работает и унаследованные пользовательские поля визуализируются правильно, использовать этот способ для проектов новых пользовательских свойств не рекомендуется. Его использование может уменьшить вероятность совместимости создаваемого пользовательского типа поля с будущими версиями SharePoint Foundation.
При создании определения типа поля в файле fldtypes*.xml пользователь может определить каждое свойство типа поля как элемент Field внутри элемента PropertySchema. Если свойства типа поля определены в элементе PropertySchema, то SharePoint Foundation автоматически отображает их на основе данной схемы.
Элемент PropertySchema содержит элемент Fields, который в свою очередь содержит по элементу Field для каждого определяемого свойства типа. Внутри каждого элемента Field можно использовать стандартный Collaborative Application Markup Language (CAML). Дополнительные сведения о пользовательских типах полей см. в статье Практическое руководство. Создание определения настраиваемого типа поля.
Этот подход ограничивает число используемых вариантов отображения тем вариантами, которые доступны при использовании CAML. Пользовательская обработка или проверка свойств типа поля невозможна. Поэтому этот способ лучше работал для простых свойства, не требовавших сложной логики обработки или проверки.
Примечание |
---|
Следует понимать, что сейчас не рассматривается проверка конкретных значений, вводимых конечными пользователями в поле определенных элементов списка. Здесь рассматриваются свойства поля (то есть свойства столбца), установленного на страницах Создать столбец сайта, Изменить столбец сайта, Создать столбец и Изменить столбец. Проверка значений, используемых создателем или редактором столбца, необходима в очень редких случаях. |
См. также
Концепции
Инструкции. Создание настраиваемого класса поля
Практическое руководство. Создание определения настраиваемого типа поля