次の方法で共有


モバイル ページでフィールド レンダリングをカスタマイズする

このトピックでは、モバイル デバイスにアクセス可能な Windows SharePoint Services 3.0 ページでフィールド レンダリングをカスタマイズする基本的な手順の概要について説明します。手順の詳細なウォークスルーについては、「[ウォークスルー] モバイル フィールドのレンダリングをカスタマイズする」および「[ウォークスルー] モバイル ページのカスタム フィールド レンダリング コントロールを作成する」を参照してください。

モバイル ページのレンダリング システム」に説明されているように、SPMobileListFieldSelector テンプレートのセレクタ コントロールは、ページ上のコントロールから一連の呼び出しを通じて呼び出されます。

このオブジェクトは、現在のリストの種類とフィールド (この例では、それぞれ "お知らせ" と "タイトル") に基づいて、どの RenderingTemplate によってモバイルの表示ページ上にフィールドを表示するのかを決定します。

このコントロールは、MobileCustomListField_リストの種類の ID_フィールドの種類_フィールドという名前の RenderingTemplate を検索します。

フィールドの種類は、フィールドのデータ型です。その値は、SPFieldType 列挙にある値のいずれかになります (Text や Number)。また、fldtypes*.xml ファイル (ユーザー設定フィールド型を定義するファイル) の <Field Name="TypeName"> 要素により定義されるユーザー設定フィールド型である場合もあります。(ユーザー設定フィールド型の詳細については、「ユーザー設定フィールド型の定義」を参照してください)。

フィールドは、WorkPhone など、フィールドの内部名です。フィールドがリスト定義のために Schema.xml ファイル中のリストの一部に指定された場合、その内部名は schema.xml 中の Field 要素の Name 属性の値になります。schema.xml は、ローカル ドライブ:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\フィーチャー フォルダにあります。フィールドが UI ([列の作成] ページ) の中のリストに追加された場合、フィールドは SPField.InternalName プロパティの値となり、オブジェクト モデルを通じてのみ参照できるようになります。

注意

フィールドは、フィールド (カラム) の内部名で、フィールドの表示名と必ずしも一致させる必要はありません。UI でユーザーが作成したフィールドについては、内部名はシステムによって ([列の作成] ページの [列名] ボックスで) ユーザーが選択した表示名から生成されます。表示名にスペースや句読点がある場合、モバイル テンプレートのレンダリング システムでは生成された内部名を正しく処理できないため、それらのフィールドのレンダリングをカスタマイズできなくなります。

リストの種類の ID は、現在のリストの種類の ID 番号 (105 など)、または SPListTemplateType 列挙の値の中の 1 つ (Contacts など) です。リストがサイト定義の Onet.xml ファイルでサイトの種類の一部として指定された場合、リストの種類の ID は、Onet.xml にある List 要素の Type 属性の値になります。このファイルは、ローカル ドライブ:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SITETEMPLATES\サイトの種類\xml にあります。(Windows SharePoint Services 3.0 の出荷時に定義済みであるすべてのリストの種類の ID 番号の一覧については、「モバイル ページのレンダリング システム」を参照してください)。リストが UI ([新規] (リスト) ページ) の中でサイトに追加された場合、リストの種類の ID は、新しいリストの種類のベースとして使用されるリストの種類の ID となります。これは、[新規] ページを作成するためにユーザーが [作成] ページ (create.aspx) のどのリンクをクリックしたかによって決まります。

検索している ID を持つ RenderingTemplate が存在しない場合は、ID MobileDefaultListField を持つ RenderingTemplate が使用されます。

既存の RenderingTemplates

次の一覧は、Windows SharePoint Services のインストール時に既に MobileDefaultTemplates.ascx に存在する、フィールドのレンダリングで使用される RenderingTemplate を示しています。

  • MobileCustomListField_Contacts_Text_WorkPhone

  • MobileCustomListField_Contacts_Text_HomePhone

  • MobileCustomListField_Contacts_Text_CellPhone

  • MobileCustomListField_Contacts_Text_Email

  • MobileCustomListField_PictureLibrary_Computed_ImageSize

  • MobileCustomListField_Posts_DateTime_PublishedDate

MobileDefaultTemplates.ascx ファイルを変更できない場合があります。新しい RenderingTemplate 要素を同じ名前で (自分の .aspx ファイルに) 作成することはできますが、Windows SharePoint Services を展開したときにインストールされた他のソリューションが使えなくなる恐れがあります。これは、同じ名前を持つオリジナルの RenderingTemplate 要素を使用していることから起こります。

注意

Windows SharePoint Services 3.0 に付属の RenderingTemplate の読み込みは、ユーザー設定のレンダリング テンプレートの読み込み前に行われます。このため、既存のレンダリング テンプレートと同じ名前を持つユーザー設定のレンダリング テンプレートが読み込まれると、オリジナルのテンプレートは無効になります。同じ名前を持つユーザー設定の RenderingTemplate 要素が複数ある場合、名前がアルファベット順で最後になるファイルにより、他のすべてのファイルが無効になります。あるファイルに同じ名前を持つテンプレートが複数ある場合は、いずれのテンプレートも読み込まれません。

また、ID MobileDefaultListField を持つ既定の RenderingTemplate 要素が既に用意されています。この要素は、現在のリストおよびフィールドに対して RenderingTemplate が定義されていない場合に必ずランタイムで使用されます。同じ名前で新しく RenderingTemplate を作成すると、同様のリスクが生じます。

モバイル リスト ビュー ページまたはフォーム ページのセクションをカスタマイズするには

  1. Microsoft Visual Studio、メモ帳、またはテキスト編集アプリケーションを使用して、\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES にユーザー コントロール ファイル (.ascx) を作成します。

  2. 適切な名前空間を登録またはインポートするには、必要なページ ディレクティブを .ascx ファイルに追加します。

  3. レンダリング テンプレートを .ascx ファイルに追加し、MobileCustomListField_リストの種類の ID_フィールドの種類_フィールドの形式で ID を指定します。

    • リストの種類の ID は、現在のリストの種類の ID 番号 (105 など)、または SPListTemplateType 列挙の値の 1 つ (Contacts など) です。詳細については、前の説明を参照してください。

    • フィールドの種類は、フィールドのデータ型です。詳細については、前の説明を参照してください。

    • フィールドは、フィールドの名前です。詳細については、前の説明を参照してください。

    レンダリング テンプレートは、Label コントロールのようにレンダリング可能なコントロールを直接宣言することも、SPMobileBaseFieldControl から派生したクラスのレンダリング コントロールを宣言することもできます。

  4. .ascx ファイルを保存し、インターネット インフォメーション サービス (IIS) を再起動して変更を適用します。

次に示す RenderingTemplate の定義の例では、お知らせのリスト上の項目に新しいタイトル フィールドを作成する方法について説明しています。詳細な例については、「[ウォークスルー] モバイル フィールドのレンダリングをカスタマイズする」および「[ウォークスルー] モバイル ページのカスタム フィールド レンダリング コントロールを作成する」を参照してください。

<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
  <Template>
    <mobile:Label Text="Title field in Announcements List" RunAt="Server" />
  </Template>
</SharePoint:RenderingTemplate>

See Also

タスク

[ウォークスルー] モバイル フィールドのレンダリングをカスタマイズする

[ウォークスルー] モバイル ページのカスタム フィールド レンダリング コントロールを作成する

概念

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

Schema.xml

Onet.xml