Привязки параметров 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 не может содержать точку ("."), выражение ресурса легко отличить от обычной ссылки на поле. |
См. также
Концепции
XsltListViewWebPart и настраиваемые представления списков
Обзор систем отображения представлений списков с помощью XSLT-преобразований