RenderPattern 要素 (フィールド型)
最終更新日: 2015年3月9日
適用対象: SharePoint Foundation 2010
この記事の内容
属性
子要素
親要素
重要 |
---|
リスト ビュー、および表示、編集、新規作成フォームのユーザー設定フィールド型のレンダリング方法の中には現在使用されていないものがあります。このトピックでは、このような廃止されたレンダリング方法で使われていたマークアップについて説明します。このトピックは、以前のバージョンの SharePoint Foundation で作成されたユーザー設定フィールド型のデバッグを支援する目的のためだけに提供されています。推奨方法については、「[方法] フィールド レンダリング テンプレートを作成する」および「[方法] ユーザー設定フィールド型を作成する」を参照してください。 ユーザー設定フィールドのレンダリングが RenderPattern マークアップで定義されている場合、そのフィールドはフォーム上では引き続き適切にレンダリングされます。ただし、リスト ビューのフィールドについては、SharePoint Foundation では、既定では XSLT スタイルシートを使用してレンダリングされます。これは、RenderPattern でリスト ビュー レンダリングが定義されている従来のユーザー設定フィールドに対しても同様です。こうしたフィールドのレンダリングを有効にするには、フィールド型定義ファイル (fldtype*.xml) の対象の FieldTypes 要素に、<Field Name="CAMLRendering">TRUE</Field> 要素を追加する必要があります。 |
RenderPattern は、SharePoint Foundation が UI のフィールド型をレンダリングするために使用できる、実際の Collaborative Application Markup Language (CAML)、HTML、およびスクリプトを定義します。また、リスト ビューでは、この要素により、選択したフィールド型に基づいて列ヘッダーもレンダリングされます。
<RenderPattern Name="Text">
</RenderPattern>
属性
属性 |
説明 |
---|---|
Name |
必須の String。この RenderPattern 要素で定義する、レンダリング パターン名を表します。 次のどちらかの値を指定します。
|
子要素
明示的には定義されていませんが、この要素は ビュー スキーマ からの CAML マークアップのコンテナです。 |
親要素
コメント
RenderPattern の継承
特定の Name の値を持つ RenderPattern がフィールド型に対して指定されていない場合、フィールド型はその親フィールド型の名前の RenderPattern を継承します。
HeaderPattern
CAML レンダリングが有効になっている場合 (上記を参照)、フィールド型には、直接または継承による、RenderPattern 要素の HeaderPattern 型が必要です。これがないと、リスト ビューのフィールドの列ヘッダーがレンダリングされません。フィールド型の並べ替えまたはフィルター処理が行えない場合は、HeaderPattern のマークアップは非常に単純になる可能性があります。ただし、フィールド型の並べ替えまたはフィルター処理が行える場合は、ヘッダーが列のタイトルとしてだけでなく、並べ替えとフィルター処理を行えるドロップダウン メニュー コントロールとしても機能するので、マークアップは非常に複雑になることがあります。さらに、特定の列では並べ替えとフィルター処理の機能が無効の場合があるので (列がベースとしているフィールド型がそれらの機能をサポートしている場合でも)、マークアップで Switch 要素を使用して、列に対して並べ替えまたはフィルター処理が有効かどうかをテストする必要があります。例については、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML\FLDTYPES.XML を参照してください。
DisplayPattern
CAML レンダリングが有効になっている場合 (上記を参照)、リスト ビューでフィールドをレンダリングできるように、フィールド型には、RenderPattern 要素の DisplayPattern 型が必要です (直接でない場合は継承による)。表示モード、たとえば表示 (リスト アイテム) ページ上では、必ずしもフィールドをレンダリングする必要はありません。これは、表示モードのフィールドは、レンダリング コントロール (.ascx ファイル) を使用して表示モードでフィールドをレンダリングできるからです。SharePoint Foundation に付属する従来のフィールド型では、表示モードでフィールドをレンダリングするのに、RenderPattern 要素の DisplayPattern 型の代わりにレンダリング コントロールが使用されることはありません。
リスト ビューの各行のフィールドをレンダリングするのにも、RenderPattern の DisplayPattern 型を使用できます。既定では、SharePoint Foundation では、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\XSL にある fldtypes*.xsl ファイルの XSLT マークアップを使用して、リスト ビューのフィールドがレンダリングされます。ただし、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML の fldtypes*.xml ファイルで、フィールドの対象の FieldTypes 要素に <Field Name="CAMLRendering">TRUE</Field> があるかどうかがチェックされます。存在する場合は、DisplayPattern を使用して、リスト ビューのフィールドがレンダリングされます。
注意
SharePoint Foundation に付属する従来の 2 つのフィールド型には、FLDTYPES.XML に RenderPattern の DisplayPattern 型がありません。ここで、(1) ContentTypeId フィールドは非表示です。(2) Computed フィールドは、表示される各リストの schema.xml 内の Field 要素の DisplayPattern 要素によって、リスト ビューと表示モードでレンダリングされます。
NewPattern および EditPattern
フィールドが含まれるリスト アイテムを作成または編集する場合、それほど多くのデータの処理やデータ検証をフィールドで行う必要がないときは、RenderPattern の NewPattern 型と EditPattern 型がそれぞれ新規作成モードと編集モードでフィールドをレンダリングするのに使用されていました。たとえば、自由形式のメモ フィールドは、どのテキストも有効な値なので、検証されることはありません。同様に、選択肢フィールドと検索フィールドでは、定義により、ユーザーの選択肢が有効な値のみに制限されます。通貨フィールド、DateTime フィールドなど、他のフィールドでは、スクリプトでコード化できる最小限の検証のみが必要です。
RenderPatterns の NewPattern 型と EditPattern 型の例については、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML\FLDTYPES.XML を参照してください。
複数列から派生したユーザー設定フィールド型の RenderPattern
ユーザー設定の複数列フィールドの RenderPattern マークアップでは、Column 要素の SubcolumnNumber 属性を使用して、複数列フィールド型の個別の列を指定します。複数列フィールド型の詳細については、「ユーザー設定の複数列フィールド クラス」を参照してください。
例
次の例では、複数列型から継承するユーザー設定フィールド型に対してレンダリング パターンを定義しています。米国の住所を格納するのにフィールドを使用します。最初のサブ列には、番地が格納されます。この後には、HTML の改行が続きます。次のサブ列には、都市名が格納され、その後にコンマとスペースが続きます。3 番目のサブ列には、州が格納され、その後にスペースが続き、最後のサブ列には、郵便番号が格納されます。
<RenderPattern Name="DisplayPattern">
<Switch>
<Expr><Column/></Expr>
<Case Value="">
</Case>
<Default>
<Column SubColumnNumber="0" HTMLEncode="TRUE"/>
<HTML><![CDATA[<BR>]]></HTML>
<Column SubColumnNumber="1" HTMLEncode="TRUE"/>
<HTML><![CDATA[, ]]></HTML>
<Column SubColumnNumber="2" HTMLEncode="TRUE"/>
<HTML><![CDATA[ ]]></HTML>
<Column SubColumnNumber="3" HTMLEncode="TRUE"/>
</Default>
</Switch>
</RenderPattern>