ユーザー設定フィールド型

Windows SharePoint Services 3.0 にビジネス情報を格納する際に、重要なビジネス データが Windows SharePoint Services に用意されているフィールド型に適合しない場合や、一般的なフィールド型をカスタマイズする必要性が生じる場合があります。Windows SharePoint Services では、ユーザー設定フィールド型を作成できます。ユーザー設定フィールドには、ユーザー設定のデータ入力規則とフィールド レンダリングを含めることができます。また、ユーザーがプロパティ変数を設定し、ユーザー設定フィールド型に基づく新しい列を作成したときに、ユーザー設定フィールド型の変数プロパティを処理およびレンダリングする方法をカスタマイズすることもできます。

注意

Windows SharePoint Services 3.0 では、ユーザー設定フィールド型に基づく列はデータシート ビューに表示されません。また、リストを Microsoft Excel ワークシートにエクスポートしたときにもこれらの列は含まれません。

ユーザー設定フィールド型を作成する

ユーザー設定フィールド型を作成する場合、さまざまな要件があります。これらの要件は、ユーザー設定フィールド型が単純であるか複雑であるかによって異なります。

ユーザー設定フィールド型の最小要件

ユーザー設定フィールド型を作成するには、少なくとも以下に示すフィールド型定義とフィールド クラスを作成する必要があります。

  • フィールド型定義。このフィールド型定義は、Windows SharePoint Services がフィールド (列のヘッダーも含む) をリスト ビューのページ (AllItems.aspx など) に正確にレンダリングするために必要な情報が含まれた XML ファイルです。通常、フィールド型定義は、リスト アイテムの表示ページ (DispForm.aspx) にフィールドをレンダリングするときにも使用されます。また、(リスト アイテムの) 新規作成ページまたは編集ページにフィールドをレンダリングするときに使用される場合もあります。フィールド型定義では、そのフィールド型に基づく列が作成されるたびに値が設定される、フィールド型の特別な変数プロパティを宣言し、定義することもできます。最も重要なのは、フィールド型定義には、コンパイルされたフィールド型を含むアセンブリの情報が含まれることです。

    フィールド型定義の詳細については、「ユーザー設定フィールド型の定義」および「カスタム フィールド レンダリングのパターン」を参照してください。

  • フィールド クラス。このクラスのインスタンスは、ユーザー設定フィールド型に基づく特定のフィールドを表すことができます。このクラスは、SPField またはこのクラスから派生した Windows SharePoint Services のいずれかのクラスから継承する必要があります。このクラスを厳密な名前のアセンブリにコンパイルし、グローバル アセンブリ キャッシュに配置します。リスト ビューのコンテキストでは、SPField オブジェクトは列とそのプロパティ (列の並べ替えが可能かどうかなど) を表します。表示、新規、編集の各モードのコンテキストでは、SPField オブジェクトはリスト アイテムの特定のフィールド (リストを構成するテーブル内のセル) と、コンテンツ データベースに格納された該当のセルの値を表します。

    このクラスには、フィールド型に適用するユーザー設定のデータ入力規則を含めることもできます。ユーザー設定の入力規則の詳細については、「ユーザー設定フィールド データ入力規則」を参照してください。

    ユーザー設定フィールド クラスの詳細については、「ユーザー設定フィールドクラス」を参照してください。

必要になる場合があるその他の開発

最も単純なユーザー設定フィールド型を除くすべてのユーザー設定フィールド型では、前のセクションで説明した最小限の作業に加え、通常、次のエンティティを 1 つ以上作成する必要があります。

  • レンダリング コントロール クラス。このクラスをレンダリング テンプレート (下記を参照) と共に使用することにより、新規モードまたは編集モードでフィールドをレンダリングできます。また、一般的ではないが、表示モードでレンダリングすることもできます。このクラスは、BaseFieldControl またはこのクラスから派生した Windows SharePoint Services のいずれかのクラスから継承する必要があります。このクラスは、フィールド クラスと同じアセンブリにコンパイルされます。

    レンダリング コントロールの詳細については、「フィールド レンダリング コントロール」および「カスタム フィールド レンダリングのパターン」を参照してください。

  • レンダリング テンプレート。レンダリング テンプレートは、C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\ControlTemplates にある .ascx ファイルに定義されます。

    このテンプレートをレンダリング コントロール クラスの CreateChildControls メソッドと共に使用して、新規、編集、表示の各モードでフィールドをレンダリングします。

    レンダリング テンプレートの詳細については、「フィールド レンダリング テンプレート」および「カスタム フィールド レンダリングのパターン」を参照してください。

  • ユーザー設定の値クラスまたは構造。作成するユーザー設定フィールド クラスでフィールド データの特別なデータ構造が必要な場合は、フィールド データを格納するための値クラス (または構造) を作成できます。

    ユーザー設定の値クラスの作成方法の詳細については、「ユーザー設定フィールド値クラス」を参照してください。

  • フィールド型の変数プロパティの編集コントロール。すべてのフィールド型には、名前、データ型、説明、および他の一般的なプロパティが必要となります。しかし、多くのフィールド型には、その型のフィールドだけに関連するプロパティもあります。これらの変数プロパティは、ユーザーがフィールド型に基づく新しい列を作成したときに UI 内で設定します。通常、フィールド型定義 (上記を参照) の要素によって、これらのプロパティの設定コントロールをレンダリングする方法が決まります。ただし、特別な編集コントロールが必要になる場合もあります。このようなコントロールは, .ascx ファイルに定義されます。通常、このファイルには、ロジックを含む分離コード ファイルがあります。複雑な計算ロジック、データ ソースの値の検索、新しい列の構成時にユーザーが入力する値に適用するユーザー設定のデータ入力規則など、カスタム機能を実行する必要がある場合は、特別な編集コントロールを作成することをお勧めします。

    注意

    変数プロパティの編集コントロールと、前述のレンダリング テンプレート (.ascx ファイル) を混同しないようにしてください。レンダリング テンプレートは、通常、列が既に定義されている既存のリストの特定のリスト アイテムを作成、編集、または表示するために、フィールドとその値をページにレンダリングします。これに対して、変数プロパティの編集コントロールは、フィールド型に基づく列を作成するときに、その型の特定のプロパティをレンダリングします。

    ユーザー設定フィールド型の変数プロパティのレンダリング コントロールと編集コントロールの詳細については、「ユーザー設定フィールド型のプロパティのレンダリング」および「フィール型プロパティ用エディタ コントロール」を参照してください。

See Also

タスク

[ウォークスルー] ユーザー設定フィールド型を作成する

概念

ユーザー設定フィールド データ入力規則

ユーザー設定フィールド値クラス

ユーザー設定フィールド型の定義

ユーザー設定フィールド型のプロパティのレンダリング

フィール型プロパティ用エディタ コントロール

フィールド レンダリング コントロール

フィールド レンダリング テンプレート

カスタム フィールド レンダリングのパターン