モバイル フォームのアイテムのタイトルをカスタマイズする

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

適用対象: SharePoint Foundation 2010

このチュートリアルでは、ユーザー設定の RenderingTemplate を実装して、モバイル ページのフィールドのレンダリングをカスタマイズする方法について説明します。この例では、モバイル リスト アイテムの表示フォームで、お知らせリストのアイテムのタイトル フィールドをカスタマイズする方法を示します。モバイル ページのフィールドをカスタマイズする手順の概要については、「[方法] モバイル ページでフィールド レンダリングをカスタマイズする」を参照してください。

モバイル ページのレンダリング システム」で説明されているように、ページ上のコントロールによる一連の呼び出しが、最終的には MobileCustomListField_ListTypeID_FieldType_Field という形式の ID を持つ RenderingTemplate を呼び出すことになります。

ListTypeID は、現在のリストのタイプの ID 番号 (たとえば、105)、または SPListTemplateType 列挙の 1 つの値 (たとえば、Contacts) のどちらかです。FieldType は、フィールドのデータ型です (たとえば Text または Number)。Field は、フィールド名です (たとえば、WorkPhone)。この ID の RenderingTemplate が存在しない場合は、ID が MobileDefaultListField の RenderingTemplate が使用されます。

Microsoft SharePoint Foundation では、ID が MobileCustomListField_Announcements_Text_Title の 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. ディレクティブの下に RenderingTemplate を追加し、これに、ランタイムが検索する ID (MobileCustomListField_Announcements_Text_Title) を指定します。

    <SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
    
    </SharePoint:RenderingTemplate>
    
  7. RenderingTemplate 要素内で、Label 子コントロールを持つ Template 要素を定義します。ラベルの Text 属性を次のように設定します。

    <Template>
      <mobile:Label Text="Title field in Announcements List" 
        RunAt="Server" />
    </Template>
    
  8. [ビルド] メニューで [ソリューションの展開] を選択します。これにより, .ascx ファイルが自動的に保存され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates に展開され、Web アプリケーションがリサイクルされるので、そのフォルダーにあるすべての .ascx ファイルが再度読み込まれます。

  9. デバイスまたはエミュレーターを使用して、少なくとも 1 つのアイテムが含まれるお知らせリストに移動し、アイテムをクリックして表示します。新しいタイトルが、次の画像のように表示されます。

カスタマイズされたモバイルのアイテム表示フォーム

関連項目

タスク

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

概念

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

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