Procédure : personnaliser le rendu des champs sur les pages mobiles
Dernière modification : mercredi 2 février 2011
S’applique à : SharePoint Foundation 2010
Cette rubrique présente une vue d’ensemble de la procédure de base permettant de personnaliser le rendu des champs sur les pages Microsoft SharePoint Foundation accessibles aux périphériques mobiles. Pour des procédures pas à pas détaillées de la procédure, voir Procédure pas à pas : personnalisation des titres d’élément sur des formulaires mobiles et Procédure pas à pas : créer un contrôle de rendu de champ personnalisé pour les pages mobiles.
Le rendu d’un champ dans un formulaire ou une page d’affichage de liste commence toujours par un objet SPMobilePageContents dans la zone de corps (contenu) de la page. Comme indiqué dans Système de rendu des pages mobiles, cet objet démarre une chaîne d’appels dont la destination finale est un objet RenderingTemplate qui restitue la zone correspondante de la page mobile. Il s’agit presque toujours d’un contrôle RenderingTemplate avec un ID segmenté. En l’absence de contrôle RenderingTemplate avec un nom correspondant, un modèle par défaut est utilisé. Cela signifie que vous pouvez personnaliser le rendu d’un champ en créant un contrôle RenderingTemplate portant l’ID que recherchera le runtime.
En particulier, le runtime recherche un contrôle RenderingTemplate ayant un ID de la forme MobileCustomListField_IDTypeListe_TypeChamp_Champ.
Les espaces réservés, IDTypeListe, TypeChamp et Champ sont définis dans ID de modèle de rendu segmentés.
S’il n’existe aucun RenderingTemplate portant l’ID recherché, le RenderingTemplate portant l’ID MobileDefaultListField est utilisé.
Modèles de rendu existants
La liste suivante identifie les contrôles RenderingTemplate de rendu de champ figurant déjà dans MobileDefaultTemplates.ascx ou GwbMobileDefaultTemplates.ascx lorsque SharePoint Foundation est installé.
MobileCustomListField_Contacts_Text_WorkZip
MobileCustomListField_PictureLibrary_Computed_ImageSize
MobileCustomListField_Posts_DateTime_PublishedDate
MobileCustomListField_Events_UserMulti_ParticipantsPicker
MobileCustomListField_CallTrack_DateTime_CallTime
MobileCustomListField_CallTrack_Computed_RefDetail
MobileCustomListField_Whereabouts_User_Name
Vous ne pouvez pas modifier les fichiers MobileDefaultTemplates.ascx ou GwbMobileDefaultTemplates.ascx. Vous pouvez créer de nouveaux éléments RenderingTemplate portant le même nom (dans votre propre fichier ascx), mais vous risquez de porter préjudice aux autres solutions installées dans le déploiement SharePoint Foundation et qui reposent sur des éléments RenderingTemplate d’origine portant ces noms.
Notes
Les RenderingTemplate inclus dans SharePoint Foundation sont chargés avant les modèles de rendu personnalisés. Par conséquent, lorsqu’un modèle de rendu personnalisé portant le même nom que l’un des modèles de rendu existants est chargé, il remplace le modèle d’origine. Si plusieurs éléments RenderingTemplate personnalisés portent le même nom, celui dont le nom de fichier occupe la dernière position dans l’ordre alphabétique remplace tous les autres. Si un fichier spécifique possède deux ou plusieurs modèles de ce type portant le même nom, aucun d’eux n’est chargé.
En outre, il existe déjà un élément RenderingTemplate par défaut portant l'ID MobileDefaultListField. Il est utilisé par le runtime chaque fois qu'un RenderingTemplate pour les liste et champ actuels n'est pas défini. Le même risque est présent si vous créez un nouveau RenderingTemplate portant ce nom.
Pour personnaliser une section d'une page de formulaire ou d'affichage de liste mobile
Dans Microsoft Visual Studio, créez un projet SharePoint vide. Définissez-le en tant que solution de batterie de serveurs, non en tant que solution en bac à sable (sandbox).
Ajoutez un dossier mappé SharePoint à TEMPLATE\ControlTemplates.
Cliquez avec le bouton droit sur le nouveau dossier et ajoutez un contrôle utilisateur SharePoint. Attribuez au fichier ascx un nom qui le différencie de ceux des autres fournisseurs de solutions ; par exemple, modèles_rendu_mobile_contoso.ascx. Visual Studio ajoute automatiquement le fichier au manifeste de solution SharePoint et le configure afin qu’il soit déployé sur %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates.
Conseil N’ajoutez pas le contrôle utilisateur en cliquant avec le bouton droit sur le projet dans l’Explorateur de solutions. Lorsque vous ajoutez un contrôle utilisateur de la sorte, Visual Studio le place dans un sous-dossier de TEMPLATE\ControlTemplates ; s’il n’est pas déplacé, Visual Studio le déploie dans un sous-dossier correspondant de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates. Les modèles de rendu mobile situés dans des sous-dossiers ne sont pas chargés.
Supprimez les fichiers .ascx.cs et .ascx.designer.cs (ou .ascx.vb et .ascx.designer.vb). Ils ne sont pas nécessaires pour ce projet.
Remplacez toute la section de directives du fichier ascx par le marquage suivant
<%@ 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" %>
Ajoutez un modèle de rendu dans le fichier .ascx et attribuez-lui un ID au format suivant : MobileCustomListField_IDTypeListe_TypeChamp_Champ.
IDTypeListe est le numéro d’identification d’un type de la liste actuelle (tel que 105) ou l’une des valeurs de l’énumération SPListTemplateType (telle que Contacts).
TypeChamp représente le type de données du champ et Champ le nom interne de celui-ci. Pour plus d’informations sur les données pouvant remplacer ces espaces réservés, voir Système de rendu des pages mobiles.
Votre modèle de rendu peut déclarer directement des contrôles restituables tels que les contrôles Label ou déclarer un contrôle de rendu d'une classe dérivée de SPMobileBaseFieldControl.
Dans le menu Générer, sélectionnez Déployer la solution. Cette opération enregistre automatiquement le fichier .ascx, le déploie dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\ControlTemplates et recycle l’application Web, ce qui permet de recharger tous les fichiers .ascx situés dans ce dossier.
Exemple
L’exemple suivant d’une définition RenderingTemplate montre comment créer un nouveau champ Title pour les éléments des listes Announcements. Pour obtenir des exemples détaillés, voir Procédure pas à pas : personnalisation des titres d’élément sur des formulaires mobiles et Procédure pas à pas : créer un contrôle de rendu de champ personnalisé pour les pages mobiles.
<SharePoint:RenderingTemplate RunAt="Server" ID="MobileCustomListField_Announcements_Text_Title" >
<Template>
<mobile:Label Text="Title field in Announcements List" RunAt="Server" />
</Template>
</SharePoint:RenderingTemplate>
Voir aussi
Tâches
Procédure pas à pas : personnalisation des titres d’élément sur des formulaires mobiles
Procédure pas à pas : créer un contrôle de rendu de champ personnalisé pour les pages mobiles
Concepts
Procédure : créer une définition de type de champ personnalisé