XSLT-Parameterbindungen

Letzte Änderung: Donnerstag, 21. Oktober 2010

Gilt für: SharePoint Foundation 2010

XSLT-Stylesheets in Microsoft SharePoint Foundation 2010 verwenden die vorhandenen globalen Ressourcenzeichenfolgen, die traditionell in Collaborative Application Markup Language (CAML)-Ansichten eingesetzt werden, welche Sie wiederum in benutzerdefiniertem XSLT nutzen können. Beispielsweise enthält die Datei main.xsl, die explizit für die Verwendung in XSLT verfügbare Parameter deklariert, den folgenden Boolean-Parameter, der angibt, ob es sich bei der aktuellen Liste um eine Dokumentbibliothek handelt: <xsl:param name="IsDocLib"/>. Wenn Sie main.xsl in ein Stylesheet importieren, können Sie den Wert dieses Parameters zurückgeben, indem Sie dem Namen wie folgt ein Dollarzeichen ($) voranstellen: <xsl:if test="$IsDocLib">.

SharePoint Foundation verwendet auch Parameterbindungen, um Ressourcen für XSLT-Transformationen zur Verfügung zu stellen. Zur Definition einer Ressource für die Verwendung in XSLT können sie die Ressource in einer RESX-Datei definieren, sie durch Deklaration im Abschnitt <ParameterBindings> der Datei Schema.xml für die Liste an eine Ansicht binden und sie anschließend in Ihrem benutzerdefinierten XSLT-Stylesheet verwenden. Sie können eine Parameterbindung auch programmgesteuert über das Objektmodell hinzufügen.

Informationen dazu, wie Sie Ressourcen mithilfe von Parametern an Ansichten binden, finden Sie unter XSLT-Parameterbindungen.

Position von Ressourcen

Es gibt zwei Möglichkeiten, Ressourcenzeichenfolgen für XSLT-Transformationen zur Verfügung zu stellen:

  • Als Stylesheetparameter (<xsl:param>), die über <ParameterBinding>-Tags im Webpart abgerufen werden (siehe ParameterBinding).

  • Als XPath-Ausdrücke, die in <xsl:value-of>-Tags verwendet werden.

Das ParameterBinding-Element enthält ein Location-Attribut zur Angabe von Ressourcentypen. Die Syntax für dieses Element ähnelt der Ausdruckssyntax für die ASP.NET-Ressourcenbindung:

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

Der Location-Wert wird als Funktion mit folgenden Parametern ausgedrückt:

Parameter

Wert

resourceFile

Der Basisname einer SharePoint Foundation-Ressourcendatei ohne die Erweiterung. Beispiel: wss oder core.

resourceName

Der Name der Ressourcenzeichenfolge. Beispiel string1.

Sie können das Location-Attribut nicht nur zur Angabe einer lokalisierten Ressource in einer RESX-Datei verwenden, sondern damit auch Werte für die in der folgenden Tabelle aufgeführten Kontexte angeben.

Kontext

Format

Abfragezeichenfolgen

<ParameterBinding Name="SelectedID" Location="QueryString(SelectedID)"/>Entsprechender Code in XSL: <xsl:param name="SelectedID"/>

Verbindung/Postback

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

Servervariablen

(Location="Form(variableName)")

Webparteigenschaften

(Location="WPProperty(PropertyValue")

Steuerelement-IDs

(Location="Control(ControlID)")

Sie können das Serverobjektmodell verwenden, um der Bindungssammlung für ein XsltListViewWebPart-Objekt eine Parameterbindung über die ParameterBindings-Eigenschaft des Webparts oder die ParameterBindings-Eigenschaft des SPView-Objekts hinzuzufügen, das mit dem Webpart verknüpft ist. Sie können aber auch deklarativ ein <ParameterBinding>-Tag zum <ParameterBindings>-Abschnitt eines View-Elements in der Datei Schema.xml einer Liste hinzufügen, um eine Parameterbindung zur Verwendung in XSLT hinzuzufügen. Beispielsweise macht das folgende Tag eine Zeichenfolge verfügbar, die in Listenansichten der Dokumentbibliothek angezeigt wird, wenn keine Elemente vorhanden sind:

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

Im Beispiel ist NoAnnouncements der Name der Ressource zur Verwendung in XSLT, wss ist der Name der Datei mit der Ressource (ohne Dateierweiterung), und noitemsinview_doclibrary ist der Name der Ressource, wie er in der Ressourcendatei erscheint.

Nachdem das <ParameterBinding>-Tag zur <ParameterBindings>-Sammlung für das Webpart hinzugefügt wurde, wird es für das XSLT-Stylesheet verfügbar gemacht, indem auf der obersten Ebene ein <xsl:param>-Tag mit demselben Namen definiert wird:

<xsl:param name="NoAnnouncements"/>

Anschließend können Sie die Ressource mithilfe eines XPath-Ausdrucks an beliebiger Stelle im Stylesheet verbrauchen:<xsl:value-of select="$NoAnnouncements" />

XPath-Ressourcenausdrücke

Zum Abrufen von Ressourcen wird in SharePoint Foundation eine spezielle XPath-Syntax verwendet, die vom XPathNavigator-Objekt interpretiert wird, welches beim Ausführen der Transformation vom XsltListViewWebPart-Objekt verwendet wird. Die Syntax lautet wie folgt, wobei der resourceFile-Parameter und der resourceName-Parameter die bereits beschriebene Bedeutung haben.

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

Im folgenden Beispiel wird dieselbe Ressource wie im vorherigen Beispiel abgerufen:

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

HinweisHinweis

Da ein interner Feldname in SharePoint Foundation keinen Punkt (".") enthalten darf, kann ein Ressourcenausdruck nicht mit einem normalen Feldverweis verwechselt werden.

Siehe auch

Konzepte

Globale XSLT-Parameter

XsltListViewWebPart und benutzerdefinierte Listenansichten

Übersicht über das XSLT-System des Rendering von Listenansichten

XMLDefinition- und CAML-Ansichtsschema

Vorgehensweise: Implementieren von Ressourcen in benutzerdefinierten Listenansichten