Привязки параметров XSLT

Дата последнего изменения: 9 марта 2015 г.

Применимо к: SharePoint Foundation 2010

В таблицах стилей XSLT в Microsoft SharePoint Foundation 2010 повторно используются уже существующие строки глобальных ресурсов, традиционно использовавшиеся в представлениях Collaborative Application Markup Language (CAML), которые можно включать в настраиваемый код XSLT. Например, файл main.xsl, в котором непосредственно объявляются параметры, доступные для использования в XSLT, включает следующий параметр типа Boolean, показывающий, является ли текущий список библиотекой документов: <xsl:param name="IsDocLib"/>. Если импортировать main.xsl в таблицу стилей, можно возвратить значение этого параметра, поставив перед его именем знак доллара ($): <xsl:if test="$IsDocLib">.

Чтобы сделать ресурсы доступными для XSLT-преобразований, в SharePoint Foundation также используются привязки параметров. Чтобы определить ресурс для использования в XSLT, достаточно определить его в файле .resx, привязать ресурс к представлению, объявив его в разделе <ParameterBindings> файла Schema.xml данного списка, а затем использовать ресурс в настраиваемом коде XSLT. Привязку параметра можно также добавить программным способом с помощью объектной модели.

Дополнительные сведения об использовании параметров для привязки ресурсов к представлениям см. в разделе Привязки параметров XSLT.

Местоположения ресурсов

Строки ресурсов могут стать доступными для XSLT-преобразований, если будут использоваться одним из двух способов:

  • в качестве параметров таблицы стилей (<xsl:param>), извлекаемых с помощью тегов <ParameterBinding> в веб-части (см. раздел ParameterBinding);

  • в качестве выражений XPath, используемых в тегах <xsl:value-of>.

Элемент ParameterBinding включает атрибут Location, задающий типы ресурсов. Синтаксис этого элемента аналогичен синтаксису выражений привязки ресурсов ASP.NET:

<ParameterBinding Name="parameterName" Location="Resource(resourceFile,resourceName)" />

Значение Location выражается в виде функции, имеющей следующие параметры:

Параметр

Значение

resourceFile

Базовое имя файла ресурсов SharePoint Foundation, без расширения. Например: wss, или core.

resourceName

Имя строки ресурса. Например: string1.

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

Контекст

Формат

Строки запроса

<ParameterBinding Name="SelectedID" Location="QueryString(SelectedID)"/>Соответствующая строка в XSL: <xsl:param name="SelectedID"/>

Подключение/обратная передача

<ParameterBinding Name="dvt_firstrow" Location="Postback;Connection"/>

Серверные переменные

(Location="Form(variableName)")

Свойства веб-части

(Location="WPProperty(PropertyValue")

Идентификаторы элементов управления

(Location="Control(ControlID)")

Используя объектную модель сервера, можно добавить привязку параметра в семейство привязок для объекта XsltListViewWebPart с помощью свойства ParameterBindings веб-части или свойства ParameterBindings объекта SPView, связанного с этой веб-частью. С другой стороны, можно декларативно добавить тег <ParameterBinding> в раздел <ParameterBindings> элемента View файла Schema.xml списка, чтобы объявить привязку параметра для использования в XSLT. Например, следующий тег делает строку доступной для просмотра в представлениях списка библиотеки документов при отсутствии элементов:

<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noitemsinview_doclibrary)" />

В этом примере NoAnnouncements — имя ресурса для использования в XSLT, wss — имя файла, содержащего ресурс (без расширения), noitemsinview_doclibrary — имя ресурса в том виде, как оно представлено в файле ресурсов.

После добавления тега <ParameterBinding> в семейство <ParameterBindings> в веб-части он становится доступен для таблицы стилей XSLT в результате определения тега <xsl:param> верхнего уровня с тем же именем:

<xsl:param name="NoAnnouncements"/>

Затем можно использовать ресурс, вставляя выражение XPath в соответствующие места таблицы стилей, например: <xsl:value-of select="$NoAnnouncements" />

Выражения XPath для ресурсов

В SharePoint Foundation для извлечения ресурсов применяется специальный синтаксис XPath, который интерпретируется объектом XPathNavigator, используемым объектом XsltListViewWebPart при выполнении преобразования. Синтаксис приводится ниже; параметры resourceFile и resourceName имеют тот же смысл, что и выше.

<xsl:value-of select="@Resources.resfile.resname" />

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

<xsl:value-of select="@Resources.wss.noitemsinview_doclibrary" />

ПримечаниеПримечание

Поскольку внутреннее поле SharePoint Foundation не может содержать точку ("."), выражение ресурса легко отличить от обычной ссылки на поле.

См. также

Концепции

Глобальные параметры XSLT

XsltListViewWebPart и настраиваемые представления списков

Обзор систем отображения представлений списков с помощью XSLT-преобразований

XMLDefinition и схема представлений CAML

Внедрение ресурсов в настраиваемых представлениях списка