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 の内部フィールド名ではピリオド (".") を使用できないので、リソース式が標準のフィールド参照と混同することはありません。
関連項目
概念
XsltListViewWebPart とカスタム リスト ビュー