XSLT パラメーターのバインド

最終更新日: 2015年3月9日

適用対象: SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 の XSLT スタイル シートでは、従来 Collaborative Application Markup Language (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> コレクションに追加した後、同じ名前の最上位の <xsl:param> タグを定義すると、<ParameterBinding> タグは XSLT シートで利用できるようになります。

<xsl:param name="NoAnnouncements"/>

その後、リソースを使用するには、<xsl:value-of select="$NoAnnouncements" /> のように、スタイル シートの任意の場所で XPath 式を使用します。

XPath リソース式

リソースを取得するために、SharePoint Foundation では、変換の実行時に、XsltListViewWebPart オブジェクトが使用する XPathNavigator オブジェクトによって解釈される、特別な Xpath 構文が使用されます。構文は次のように指定します。この構文の resourceFile パラメーターと resourceName パラメーターは、前に説明したとおり、同じことを意味します。

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

次の例では、前の例と同じリソースを取得します。

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

注意

SharePoint Foundation の内部フィールド名ではピリオド (".") を使用できないので、リソース式が標準のフィールド参照と混同することはありません。

関連項目

概念

XSLT グローバル パラメーター

XsltListViewWebPart とカスタム リスト ビュー

XSLT リスト ビュー レンダリング システムの概要

XMLDefinition および CAML ビュー スキーマ

[方法] カスタム リスト ビューでリソースを実装する