モバイル フォームのアイテムのタイトルをカスタマイズする
最終更新日: 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 はありません。このチュートリアルでは、[お知らせ] リストのアイテム用のモバイル表示フォームで、アイテムの新しいタイトルの代替となるものを作成します。
お知らせの項目のタイトル フィールドをカスタマイズするには
Microsoft Visual Studio で、空の SharePoint プロジェクトを作成し、そのプロジェクトをサンドボックス ソリューションではなくファーム ソリューションにします。
[SharePoint のマップされたフォルダー] を TEMPLATE\ControlTemplates に追加します。
新しいフォルダーを右クリックし、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 の対応するサブフォルダーに展開します。サブフォルダー内のモバイル版のレンダリング テンプレートは読み込まれません。
.ascx.cs ファイルと .ascx.designer.cs (または .ascx.vb および .ascx.designer.vb) ファイルを削除します。これらのファイルはこのプロジェクトでは必要ありません。
.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" %>
ディレクティブの下に RenderingTemplate を追加し、これに、ランタイムが検索する ID (MobileCustomListField_Announcements_Text_Title) を指定します。
<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" > </SharePoint:RenderingTemplate>
RenderingTemplate 要素内で、Label 子コントロールを持つ Template 要素を定義します。ラベルの Text 属性を次のように設定します。
<Template> <mobile:Label Text="Title field in Announcements List" RunAt="Server" /> </Template>
[ビルド] メニューで [ソリューションの展開] を選択します。これにより, .ascx ファイルが自動的に保存され、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates に展開され、Web アプリケーションがリサイクルされるので、そのフォルダーにあるすべての .ascx ファイルが再度読み込まれます。
デバイスまたはエミュレーターを使用して、少なくとも 1 つのアイテムが含まれるお知らせリストに移動し、アイテムをクリックして表示します。新しいタイトルが、次の画像のように表示されます。
関連項目
タスク
[方法] モバイル ページでフィールド レンダリングをカスタマイズする