XSLT 参数绑定

上次修改时间: 2015年3月9日

适用范围: SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 中的 XSLT 样式表可重用传统意义上在协作应用程序标记语言 (CAML) 视图中使用的现有全局资源字符串,该视图可用于自定义 XSLT。例如,显式声明可在 XSLT 中使用的参数的 main.xsl 文件包括指示当前列表是否为文档库的以下 Boolean 参数:<xsl:param name="IsDocLib"/>。如果将 main.xsl 导入样式表,则可返回此参数的值,方法是将美元符号 ($) 追加到名称前,如下所示:<xsl:if test="$IsDocLib">。

SharePoint Foundation 还使用参数绑定来为 XSLT 转换提供资源。要定义要在 XSLT 中使用的资源,可在 .resx 文件中定义该资源,将该资源绑定到视图(方法是在列表的 Schema.xml 文件的 <ParameterBindings> 部分中声明该资源),然后在自定义 XSLT 中使用该资源。还可以编程方式通过对象模型添加参数绑定。

有关如何使用参数将资源绑定到视图的信息,请参阅 XSLT 参数绑定

资源位置

可采用以下两种方式之一为 XSLT 转换提供相应资源:

  • 作为通过 Web 部件中的 <ParameterBinding> 标记检索的样式表参数 (<xsl:param>)(参见 ParameterBinding)。

  • 作为在 <xsl:value-of> 标记中使用的 XPath 表达式。

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)")

Web 部件属性

(Location="WPProperty(PropertyValue")

控件 ID

(Location="Control(ControlID)")

可使用服务器对象模型通过以下属性将参数绑定添加到 XsltListViewWebPart 对象的绑定集合:Web 部件的 ParameterBindings 属性,或与该 Web 部件关联的 SPView 对象的 ParameterBindings 属性。但您还可以声明的方式将 <ParameterBinding> 标记添加到列表的 Schema.xml 文件中 View 元素的 <ParameterBindings> 部分,以声明要在 XSLT 中使用的参数绑定。例如,通过以下标记,可在没有项目时,使字符串显示在文档库列表视图中:

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

在本示例中,NoAnnouncements 是要在 XSLT 中使用的资源的名称,wss 是包含资源的文件的名称(不带文件扩展名),noitemsinview_doclibrary 是资源文件中表示的资源的名称。

将 <ParameterBinding> 标记添加到 Web 部件上的 <ParameterBindings> 集合中后,它便可用于 XSLT 样式表,方法是定义相同名称的顶级 <xsl:param> 标记:

<xsl:param name="NoAnnouncements"/>

然后您可以通过在该样式表的任意位置使用 XPath 表达式来使用该资源,如下所示:<xsl:value-of select="$NoAnnouncements" />

XPath 资源表达式

为检索资源,SharePoint Foundation 使用由 XPathNavigator 对象解释的特殊 XPath 语法,当转换运行时,该对象由 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 视图架构

如何:在自定义列表视图中实现资源