モバイル リスト ビュー ページおよびフォーム ページをカスタマイズする

最終更新日: 2011年2月2日

適用対象: SharePoint Foundation 2010

このトピックでは、モバイル デバイスでアクセスできる Microsoft SharePoint Foundation リスト ビュー ページやフォーム ページをカスタマイズする基本的な手順の概要を説明します。手順の詳細については、「[ウォークスルー] モバイル リスト ビュー ページをカスタマイズする」を参照してください。モバイル ホーム ページをカスタマイズする方法の概要については、「[方法] モバイル ホーム ページをカスタマイズする」を参照してください。

モバイル ページのレンダリング システム」で説明されているように、モバイル リスト ビュー ページあるいはリスト アイテム フォームのヘッダー (タイトル)、本文 (コンテンツ)、およびフッター (ナビゲーション) の各領域のコントロールがそれぞれ一連の呼び出しを行い、これが最終的にはモバイル ページの対応する領域をレンダリングする RenderingTemplate オブジェクトを呼び出すことになります。ほとんどの場合、これはセグメント付き ID を持つ RenderingTemplate です。名前が一致する RenderingTemplate が見つからない場合は、既定のテンプレートが使用されます。つまり、ランタイムの検索対象となる ID を持つ RenderingTemplate を作成すると、ヘッダー、本文、またはフッターをカスタマイズできます。

特に、ランタイムは次のフォーマットの RenderingTemplate ID を検索します。

IntendedListUse_ListTypeID_PageType_PageArea

プレースホルダー IntendedPageUse、ListTypeID、PageType、および PageArea は「セグメント化されたレンダリング テンプレート ID」で定義されます。リスト ビュー ページあるいはアイテム フォームの、PageType で使用できる値は、DispForm、NewForm、EditForm、および DeletePage です。

モバイル ページ セクションの詳細については、「モバイル ページのレイアウトと改ページ」を参照してください。

特定の IntendedPageUse、ListTypeID、PageType、および PageArea については、名前が一致する RenderingTemplate が見つからない場合は、ListTypeID の代わりに "既定" で指定されたものが使用されます。

IntendedPageUse_Default_PageType_PageArea

たとえば、ランタイムが ID Mobile_Announcements_View_Contents を持つ RenderingTemplate を探しても、(カスタム テンプレートがその名前で追加されていない限り) 見つかりません。そのため、存在する Mobile_Default_View_Contents を使用して、お知らせリストのリスト ビュー ページの本文 (コンテンツ) 領域を表示します。

したがって、このリスト ビューの本文 (コンテンツ) のレンダリングをカスタマイズするには、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ に展開する .ascx ファイルに ID Mobile_Announcements_View_Contents (あるいは Mobile_104_View_Contents) を持つ RenderingTemplate 要素を作成します。MobileDefaultTemplates.ascx ファイルまたは GbwMobileDefaultTemplates.ascx ファイルを変更することはできません。リスト ビュー ページあるいはフォームのカスタム レンダリング テンプレートを作成する方法の詳細については、次のセクションの手順および「[ウォークスルー] モバイル リスト ビュー ページをカスタマイズする」を参照してください。

既存の RenderingTemplates

SharePoint Foundation と共にインストールされた MobileDefaultTemplates.ascx または GwbMobileDefaultTemplates.ascx ファイル内のモバイル リスト ビュー ページおよびフォームには、多くの RenderingTemplate オブジェクトが含まれます。以下はその一例です。

  • Mobile_Events_DispForm_Navigation

  • Mobile_Comments_View_Navigation

  • Mobile_Posts_DeletePage_Navigation

  • Mobile_425_View_Navigation

  • MobileFolder_DocumentLibrary_View_Navigation

  • MobileDailyView_Events_View_Navigation

MobileDefaultTemplates.ascx または GwbMobileDefaultTemplates.ascx ファイルを変更することはできません。既存のレンダリング テンプレートの 1 つと同じ ID で新しく RenderingTemplate を (独自の .ascx ファイルに) 作成できます。ただし、そうすることで、同じ ID を持つ元の RenderingTemplate に依存する、SharePoint Foundation に展開される他のソリューションが破損する危険性があります。

注意

カスタム テンプレートを読み込む前に SharePoint Foundation に含まれる RenderingTemplate 要素が読み込まれます。このため、既存のレンダリング テンプレートの 1 つと同じ名前のカスタム テンプレートが読み込まれると、元のテンプレートがこのカスタム テンプレートで上書きされます。同じ名前のカスタム RenderingTemplate オブジェクトが複数存在する場合、ファイル名がアルファベット順で最後になるファイルにより、それ以外のものが上書きされます。特定のファイルに同じ名前を持つ複数のレンダリング テンプレートがある場合、これらはどれも読み込まれません。

加えて、同一ファイル内には、以下の RenderingTemplate 要素が既定で定義されています。この要素は、現在使用しているリスト形式に対応した RenderingTemplate が定義されていない場合に常にランタイムで使用されます。以下に示すいずれかの名前を使用して新しく RenderingTemplate オブジェクトを作成する場合も同等のリスクが存在します。

  • Mobile_Default_DeletePage_Contents

  • Mobile_Default_DeletePage_Navigation

  • Mobile_Default_DeletePage_Title

  • Mobile_Default_DispForm_Contents

  • Mobile_Default_DispForm_Navigation

  • Mobile_Default_DispForm_Title

  • Mobile_Default_EditForm_Contents

  • Mobile_Default_EditForm_Navigation

  • Mobile_Default_EditForm_Title

  • Mobile_Default_NewForm_Contents

  • Mobile_Default_NewForm_Navigation

  • Mobile_Default_NewForm_Title

  • Mobile_Default_View_Contents

  • Mobile_Default_View_Navigation

  • Mobile_Default_View_Title

  • MobileDailyView_Default_View_Navigation

  • MobileFolder_Default_View_Title

  • MobileFolder_Default_View_Navigation

RenderingTemplate オブジェクトをネストすることができます。次の例を参照してください。

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

  1. Microsoft Visual Studio で、空の SharePoint プロジェクトを作成し、そのプロジェクトをサンドボックス ソリューションではなくファーム ソリューションにします。

  2. [SharePoint のマップされたフォルダー] を TEMPLATE\ControlTemplates に追加します。

  3. 新しいフォルダーを右クリックし、SharePoint ユーザー コントロールを追加します。.ascx ファイルに、他のソリューション プロバイダーの名前と簡単に区別できる名前 (ContosoMobileRenderingTemplates.ascx など) を付けます。Visual Studio により、ファイルが SharePoint Solution マニフェストに自動的に追加され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates に展開されるように設定されます。

    ヒントヒント

    ソリューション エクスプローラーでプロジェクトを右クリックしてユーザー コントロールを追加しないでください。この方法でユーザー コントロールを追加すると、Visual Studio は、そのコントロールを TEMPLATE\ControlTemplates のサブフォルダーに追加します。その後、Visual Studio は、移動されなかったコントロールを、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates の対応するサブフォルダーに展開します。サブフォルダー内のモバイル版のレンダリング テンプレートは読み込まれません。

  4. .ascx.cs ファイルと .ascx.designer.cs (または .ascx.vb および .ascx.designer.vb) ファイルを削除します。これらのファイルはこのプロジェクトでは必要ありません。

  5. .ascx ファイルのディレクティブ セクション全体を次のマークアップで置き換えます。

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  6. レンダリング テンプレートを .ascx ファイルに追加し、次のフォーマットで ID を指定します。IntendedListUse_ListTypeID_PageType_PageArea

    • IntendedListUse は、Mobile、MobileFolder、または MobileDailyView です。

    • ListTypeID は、現在使用しているリスト形式の ID 番号 (例: 105)、または SPListTemplateType 列挙の値の 1 つ (例: Contacts) です。

    • PageType は、View、NewForm、EditForm、DispForm、または DeletePage です。

    • PageArea は、Title、Contents、または Navigation です。

  7. [ビルド] メニューで [ソリューションの展開] を選択します。これにより, .ascx ファイルが自動的に保存され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates に展開され、Web アプリケーションがリサイクルされるので、そのフォルダーにあるすべての .ascx ファイルが再度読み込まれます。

以下に示す RenderingTemplate の定義例では、RenderingTemplate オブジェクトをネストする方法を示しています。例は、リストの種類 104 ([お知らせ]) を示すリスト ビュー ページのフッターのカスタム RenderingTemplate を示しています。リスト ビュー ページのカスタマイズ例の詳細については、「[ウォークスルー] モバイル リスト ビュー ページをカスタマイズする」を参照してください。

<SharePoint:RenderingTemplate RunAt="Server" ID="Mobile_104_View_Navigation">
  <Template>
    <mobile:Link RunAt="Server" 
      Text="ASP.NET Website" href="https://www.asp.net" />
    <mobile:Label RunAt="Server" Text="" BreakAfter="True" />
    <SPMobile:SPMobileComponent RunAt="Server" 
      TemplateName="Mobile_Default_View_Navigation" />
  </Template>
</SharePoint:RenderingTemplate>

関連項目

タスク

[ウォークスルー] モバイル リスト ビュー ページをカスタマイズする

[方法] モバイル ホーム ページをカスタマイズする

概念

モバイル ページのレイアウトと改ページ

[方法] リダイレクションを使用してモバイル ホーム ページをカスタマイズする

モバイル ページのレンダリング システム