Элемент RenderPattern (Типы полей)
Применимо к: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013
Важно!
В этом разделе описывается разметка, которая использовалась в устаревшем методе отрисовки типов настраиваемых полей в представлениях списка и в формах отображения, изменения и создания. Он предоставляется исключительно для оказания помощи лицам, которые выполняют отладку пользовательского типа поля, который был первоначально разработан для более ранней версии SharePoint Foundation. Сведения о рекомендуемых методах см. в разделе Шаблоны отрисовки полей и шаблоны пользовательской отрисовки полей.
Пользовательские поля, отрисовка которых определена с помощью разметки RenderPattern , по-прежнему правильно отрисовывается в формах. Однако SharePoint Foundation по умолчанию использует таблицы стилей XSLT для отрисовки полей в представлениях списка, даже для устаревших настраиваемых полей, отрисовка представления списка которых определена с помощью RenderPattern. Чтобы включить отрисовку такого поля, <Field Name="CAMLRendering">TRUE</Field>
необходимо добавить элемент в содержащий элемент FieldTypes в файле определения типа поля (fldtype*.xml
).
RenderPattern определяет фактический язык CAML, HTML и скрипт, которые SharePoint Foundation может использовать для отрисовки типа поля в пользовательском интерфейсе. Кроме того, в представлениях списков данный элемент на основе выбранного типа поля отображает заголовки столбцов.
<RenderPattern Name="Text">
</RenderPattern>
Элементы и атрибуты
В разделах ниже приводится описание атрибутов, дочерних и родительских элементов.
Атрибуты
Атрибут | Описание |
---|---|
Name |
Обязательный атрибут типа String. Представляет имя шаблона отображения, определяемого в этом элементе RenderPattern. Допустимые значения: - HeaderPattern. Определяет отрисовку заголовка столбца на страницах представления списка при включении отрисовки CAML (путем включения <Field Name="CAMLRendering">TRUE</Field> в содержащий элемент fldtypes*.xml FieldTypes файла).- DisplayPattern. Определяет отрисовку поля для формы Отображения (элемента списка). Если включена отрисовка CAML (путем включения <Field Name="CAMLRendering">TRUE</Field> в содержащий элемент fldtypes*.xml FieldTypes файла), DisplayPattern также определяет отрисовку поля на страницах представления списка.- EditPattern. Определяет отображение поля для формы Edit (элемент списка). - NewPattern. Определяет отображение поля для формы New (элемент списка). - PreviewDisplayPattern. Определяет для использования в конструкторе сайтов WYSIWYG (то, что вы видите, то, что вы получаете), например SharePoint Designer, предварительный просмотр того, как поле будет выглядеть в режиме отображения с использованием вымышленных данных. - PreviewEditPattern. Определяет для использования в конструкторе сайтов WYSIWYG, например SharePoint Designer, предварительный просмотр того, как будет выглядеть поле в режиме редактирования с использованием вымышленных данных. - PreviewNewPattern. Определяет для использования в конструкторе сайтов WYSIWYG, например SharePoint Designer, предварительный просмотр того, как поле будет выглядеть в новом режиме с использованием вымышленных данных. |
Дочерние элементы
Ни один явно не определен, но этот элемент является контейнером разметки CAML из схемы Представления.
Родительские элементы
Замечания
Наследование RenderPatterns
Если для типа поля не указан RenderPattern с конкретным значением Name, этот тип поля наследует RenderPattern с таким именем от его родительского типа поля.
HeaderPattern
Если включена отрисовка CAML, тип поля должен иметь тип HeaderPattern элемента RenderPattern напрямую или по наследованию, иначе заголовок столбца поля в представлениях списка не отображается. Разметка в HeaderPattern может быть довольно простой, если тип поля не может быть отсортирован или отфильтрован. Однако если тип поля можно отсортировать или отфильтровать, разметка может стать довольно сложной, так как заголовок служит не только заголовком столбца, но и элементом управления раскрывающимся меню для сортировки и фильтрации. Кроме того, так как возможность сортировки и фильтрации может быть отключена для конкретных столбцов (даже если тип поля, на который основан столбец, поддерживает их), разметка должна использовать элементы Switch , чтобы проверить, включена ли сортировка или фильтрация для столбца. Примеры см. в разделе %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\XML\FLDTYPES.XML.
DisplayPattern
Если включена отрисовка CAML, тип поля должен иметь тип DisplayPattern элемента RenderPattern (по наследованию, если не напрямую), чтобы поле можно было визуализировать в представлениях списка. Это необязательно для отображения поля в режиме отображения, например на странице Отображение (элемент списка), так как поле также может быть отрисовано в режиме отображения с помощью элемента управления отрисовки (ASCX-файл). Ни один из устаревших типов полей, поставляемых с SharePoint Foundation, не использует элемент управления отрисовкой вместо типа DisplayPattern элемента RenderPattern для отрисовки поля в режиме отображения.
Тип DisplayPatternRenderPattern также можно использовать для отрисовки поля в каждой строке представления списка. По умолчанию SharePoint Foundation использует разметку XSLT в fldtypes*.xsl
файле, расположенном в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\XSL, для отображения полей в представлениях списка. fldtypes*.xml
Но файл в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\XML проверяется на наличие <Field Name="CAMLRendering">TRUE</Field>
в элементе FieldTypes, содержавом поле. Если он присутствует, displayPattern используется для отрисовки поля в представлениях списка.
Примечание.
Два устаревших типа полей, поставляемые с SharePoint Foundation, не имеют типа DisplayPatternRenderPattern в FLDTYPES.XML: (1) Поля ContentTypeId никогда не видны. (2) Вычисляемые поля отображаются в представлениях списка и в режиме отображения элементом DisplayPattern в элементах Field в schema.xml каждого списка, в котором они отображаются.
NewPattern и EditPattern
Типы NewPattern и EditPatternRenderPattern использовались для отрисовки поля в новом режиме и режиме редактирования соответственно, когда поле не требовало значительной обработки данных или проверки данных при создании или изменении элемента списка, содержащего поле. Например, произвольные поля примечаний нельзя проверить, так как любой текст является для них допустимым значением. Аналогичным образом поле Choice и поле Lookup по определению ограничивают выбор пользователя только действительными значениями. Другие поля, например Currency и DateTime, требуют только минимальной проверки, которую можно занести в скрипт.
Примеры типов NewPattern и EditPatternrenderPatterns см. в разделе %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\XML\FLDTYPES.XML.
RenderPatterns для пользовательских типов полей, производных от нескольких столбцов
В разметке RenderPattern для настраиваемого поля MultiColumn атрибут SubcolumnNumber элемента Column используется для указания отдельного столбца в типе поля с несколькими столбцами. Дополнительные сведения о типах полей с несколькими столбцами см. в статье Custom Multicolumn Field Classes.
Пример
В следующем примере показано определение шаблона отображения для настраиваемого типа поля, производного от типа MultiColumn. Это поле используется для хранения адресов в Америке. В первом подколонке хранится адрес улицы, за которым следует разрыв строки HTML. Следующий подколонок содержит название города, за которым следует запятая и пробел. В третьем вложенном столбце хранится область, после которой стоит пробел, а в последнем вложенном столбце хранится почтовый индекс.
<RenderPattern Name="DisplayPattern">
<Switch>
<Expr><Column/></Expr>
<Case Value="">
</Case>
<Default>
<Column SubColumnNumber="0" HTMLEncode="TRUE"/>
<HTML><![CDATA[<BR>]]></HTML>
<Column SubColumnNumber="1" HTMLEncode="TRUE"/>
<HTML><![CDATA[, &nbsp;]]></HTML>
<Column SubColumnNumber="2" HTMLEncode="TRUE"/>
<HTML><![CDATA[ &nbsp;]]></HTML>
<Column SubColumnNumber="3" HTMLEncode="TRUE"/>
</Default>
</Switch>
</RenderPattern>