次の方法で共有


チュートリアル: カスタムのフィールド、コンテンツ タイプ、リスト定義、およびリスト インスタンスの作成

以降の手順では、Patient Name というカスタム フィールドと、そのフィールドを使用するコンテンツ タイプを SharePoint で作成する方法について説明します。 また、新しいコンテンツ タイプおよびフィールドを使用したリスト定義を、そのリスト定義に基づくリスト インスタンスと共にプロジェクトに追加する方法も取り上げます。

このチュートリアルでは、次のタスクについて説明します。

  • フィールドを作成してカスタマイズする。

  • フィールドを使用したコンテンツ タイプを作成してカスタマイズする。

  • リスト定義を作成してカスタマイズする。

  • リスト定義のリスト インスタンスを作成してカスタマイズする。

  • コンテンツ タイプおよびリスト インスタンス内の新しいフィールドを表示する。

注意

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

カスタム フィールド項目の作成

まず、Visual Studio で、Patient Name というカスタム フィールド項目を SharePoint プロジェクトとして作成します。

カスタム フィールド項目を作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[新しいプロジェクト] をクリックして、[新しいプロジェクト] ダイアログ ボックスを表示します。

  2. [Visual C#] または [Visual Basic][SharePoint] ノードを展開して、[2010] をクリックします。

  3. [テンプレート] ペインで [空の SharePoint プロジェクト] をクリックし、プロジェクトの名前を「CustomField1」に変更して、[OK] をクリックします。

    SharePoint カスタマイズ ウィザードが表示されます。 カスタム フィールド項目には対応するテンプレートがないため、"空のプロジェクト" テンプレートを使用します。

  4. [デバッグのサイトとセキュリティ レベルの指定] ページで、新しいカスタム フィールド項目を追加する SharePoint サーバー サイトの URL を入力するか、既定の場所 (http://<system name>/) を使用します。

  5. [この SharePoint ソリューションの信頼レベル] セクションでは、[サンドボックス ソリューションとして配置する] の既定値を使用します。

    サンドボックス化ソリューションとファーム ソリューションの違いの詳細については、「サンドボックス ソリューションの考慮事項」を参照してください。

  6. [完了] をクリックします。 プロジェクトがソリューション エクスプローラーに表示されます。

  7. "空の要素" プロジェクト項目をプロジェクトに追加します。 これを行うには、ソリューション エクスプローラーでフィールドのプロジェクト ノード (CustomField1) をクリックし、[プロジェクト][新しい項目の追加] をクリックします。

  8. [Visual C#] または [Visual Basic][SharePoint] ノードを展開して、[2010] をクリックします。

  9. [テンプレート] ペインで [空の要素] を選択し、既定の名前の EmptyElement1 をそのままにして、[追加] をクリックします。

  10. Elements.xml ファイルで、EmptyElement1 の下にある <Elements> タグの後に、次のコードを追加します。

    <Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Type="Note" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Group="A Custom Group">
    </Field>
    

    これで、Patient Name という名前のフィールドが追加されます。

    重要

    カスタム フィールドを追加するとき、SharePoint で正しく表示されるようにするには、ID、Type、Name、DisplayName、Group の各属性を指定する必要があります。 実際にはこれら 5 つの属性すべてが必要ですが、ステートメント入力候補では最初の 3 つのみが必要であると誤って示されます。

  11. F5 キーを押して、プロジェクトを実行し、SharePoint に配置します。

    スクリプトのデバッグが無効であることを示すメッセージが表示されたら、[はい] をクリックし、デバッグを続行します。

  12. Visual Studio で Web アプリケーションをデバッグするのが、今回が初めてである場合、今後はデバッグを有効にするように、Web 構成ファイルを修正するかどうかをたずねられます。 このメッセージには、[はい] を選択してください。

  13. SharePoint Web ページの一番上にある [サイトの操作] ボタンをクリックし、[サイトの設定] をクリックします。

  14. [サイトの設定] ページの [ギャラリー] セクションで、[サイト内の列] リンクをクリックします。

  15. [サイト内の列ギャラリー] ページを下へスクロールして [ユーザー設定の列] という見出しを表示すると、Patient Name という新しいフィールド項目が追加されているのがわかります。

  16. ブラウザーを閉じます。

カスタム コンテンツ タイプの作成

次に、SharePoint 連絡先リストをベースに、前の手順で作成した新しいフィールドを使用したコンテンツ タイプを作成します。

カスタム コンテンツ タイプを作成するには

  1. プロジェクトにコンテンツ タイプを追加します。 そのためには、ソリューション エクスプローラーで対象のプロジェクト ノードをクリックし、[プロジェクト] メニューの [新しい項目の追加] をクリックします。

  2. [Visual C#] または [Visual Basic][SharePoint] ノードを展開して、[2010] をクリックします。

  3. [テンプレート] ペインで、[コンテンツ タイプ] を選択し、既定の名前の ContentType1 をそのまま使用します。

  4. SharePoint カスタマイズ ウィザードで、新しいコンテンツ タイプのベースとして [連絡先] を選択し、[完了] をクリックします。

    コンテンツ タイプの Elements.xml ファイルが開いて、編集できる状態になります。

  5. Elements.xml の <FieldRefs> セクションに、次の内容をコピーして貼り付けます。

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE"/>
    

    ここで使用されている FieldRef ID は、カスタム フィールドに対して作成した Field ID を表します。

  6. F5 キーを押して、プロジェクトを実行し、配置します。

  7. SharePoint Web ページの一番上にある [サイトの操作] ボタンをクリックし、[サイトの設定] をクリックします。

  8. [サイトの設定] ページの [ギャラリー] セクションで、[サイト コンテンツ タイプ] リンクをクリックします。

  9. [サイト コンテンツ タイプ ギャラリー] ページには、たった今作成した新しいコンテンツ タイプ CustomField1 - ContentType1 が表示されます。 これをクリックすると、対応するフィールドが表示されます。 CustomField1 - ContentType1 のフィールド一覧を見ると、Patient Name というフィールドが追加されていることがわかります。

  10. ブラウザーを閉じます。

リスト定義とリスト インスタンスの作成

今度は、新しいコンテンツ タイプおよびフィールドを使用したリスト定義とリスト インスタンスを作成します。 先ほど作成したコンテンツ タイプに基づくリスト定義を作成する関係上、ここでは、[コンテンツ タイプからのリスト定義] プロジェクト項目テンプレートを使用します。

リスト定義とリスト インスタンスを作成するには

  1. プロジェクトにリスト定義を追加します。 そのためには、ソリューション エクスプローラーで対象のプロジェクト ノードをクリックし、[プロジェクト] メニューの [新しい項目の追加] をクリックします。

  2. [Visual C#] または [Visual Basic][SharePoint] ノードを展開して、[2010] をクリックします。

  3. [テンプレート] ペインで、[コンテンツ タイプからのリスト定義] を選択し、既定の名前の ListDefinition1 をそのまま使用します。

  4. [リスト定義の表示名] ボックスは、既定値 [CustomField1 - ListDefinition1] のままにします。

  5. [リスト定義に使用するコンテンツ タイプ] の一覧では、既定値 (唯一の値) である [CustomField1 - ContentType1] を使用します。

    これで、変更済みの新しい連絡先リストに基づく、カスタマイズ可能なリスト定義が作成されます。

  6. [このリスト定義のリスト インスタンスを追加する] ボックスを選択して、リスト インスタンス プロジェクト項目をプロジェクトに追加します。 このリスト インスタンスが、新しいリスト定義のインスタンスになります。

  7. [完了] をクリックします。 リスト定義がソリューション エクスプローラーに表示されます。

リスト定義のカスタマイズ

最後に、新しいフィールド (Patient Name) を追加してリスト定義をカスタマイズします。

重要

リスト定義の Elements.xml に含まれる Name 属性の値は、リスト定義プロジェクト項目のフォルダー名と一致している必要があります。一致していないと、プロジェクトの実行時にエラーが発生します。 Name 属性とフォルダー名とを確実に一致させるには、$ProjectItemName$ という置換パラメーター (トークン) を使用します。 SharePoint プロジェクトをパッケージ化して配置するときには、このトークンがリスト定義の実際のフォルダー名に変換されます。 Name 属性の値を、このトークン以外の値に変更すると、アプリケーションが正しく実行されない場合があります。 詳細については、「置き換え可能パラメーター」を参照してください。

リスト定義にフィールドを追加するには

  1. ソリューション エクスプローラーで、ListDefinition1 の下の Schema.xml をダブルクリックして表示します。

    Schema.xml には、リスト定義のすべてのフィールドに加え、名前やアドレスなどの要素が定義されています。 ファイルの上部にある <Fields> 要素の下に、次のフィールド定義がコンテンツ タイプ別に追加されています。

    <FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}" 
        Name="PatientName" 
        DisplayName="Patient Name" 
        Required="TRUE" />
    
  2. F5 キーを押して、プロジェクトを実行し、配置します。

  3. SharePoint のクイック起動バーの [リスト] セクションで、[CustomField1 - ListInstance1] リンクをクリックします。

    これは、新しいリスト定義のリスト インスタンスです。 新しい Patient Name フィールドは、まだリスト インスタンスの列として表示されていません。

  4. [リスト ツール] メニュー タブで、ページの一番上にある [リスト] をクリックし、リボン バーの [このビューの変更] をクリックします。

  5. 使用できる列名の一覧で [Patient Name] をクリックし、[OK] をクリックします。 これで、Patient Name フィールドがリスト インスタンスに表示されます。

参照

その他の技術情報

SharePoint ソリューションの開発

[方法] ユーザー設定フィールド型を作成する

コンテンツ タイプ