Cette documentation est archivée et n’est pas conservée.

Procédure : personnaliser le rendu des champs sur les pages mobiles

Windows SharePoint Services 3

Cette rubrique présente une vue d’ensemble de la procédure de base permettant de personnaliser le rendu des champs sur les pages Windows SharePoint Services 3.0 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 un formulaire d'affichage mobile et Procédure pas à pas : créer un contrôle de rendu de champ personnalisé pour les pages mobiles.

Comme décrit dans Système de rendu des pages mobiles, un contrôle de sélecteur de modèle SPMobileListFieldSelector est appelé, par le biais d'une chaîne d'appels, depuis un contrôle sur la page.

Cet objet détermine, selon le type de liste et le champ actuels (qui sont Announcements et Title, respectivement, dans cet exemple), le RenderingTemplate qui restitue le champ sur la page Affichage mobile.

Le contrôle recherche un RenderingTemplate nommé MobileCustomListField_IDTypeListe_TypeChamp_Champ.

TypeChamp représente le type de données du champ. Il peut s'agir de l'une des valeurs de l'énumération SPFieldType ; par exemple, Text ou Number. Il peut également s'agir d'un type de champ personnalisé tel que défini par l'élément <Field Name="TypeName"> dans le fichier fldtypes*.xml qui configure le type de champ personnalisé. (Pour plus d'informations sur les types de champs personnalisés, voir Définition de type de champ personnalisé.)

Champ représente le nom interne du champ, tel que WorkPhone. Si le champ est défini comme devant faire partie de la liste dans le fichier Schema.xml de la définition de liste, le nom interne peut correspondre à la valeur de l'attribut Name de l'élément Field schema.xml, qui se trouve dans le répertoire suivant : Lecteur_local:\ Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\Dossier_Composants_fonctionnels. Si le champ a été ajouté à la liste dans l'interface utilisateur, autrement dit, la page Créer une colonne, Champ représente la valeur de la propriété Microsoft.SharePoint.SPField.InternalName et ne peut être obtenu que par le biais du modèle objet.

Remarque Remarque :

Champ représente le nom interne du champ (colonne), qui n'est pas nécessairement le même que le nom d'affichage du champ. Pour les champs créés par les utilisateurs dans l'interface utilisateur, le nom interne est généré par le système à partir du nom d'affichage choisi par l'utilisateur (dans la zone Nom de la colonne de la page Créer une colonne). Si l'utilisateur a inclus des espaces ou des signes de ponctuation dans le nom d'affichage, le système de rendu des modèles de pages mobiles ne pourra pas utiliser le nom interne généré, et vous ne pourrez pas personnaliser le rendu de ces champs.

IDTypeListe représente le numéro d’identification du type de la liste actuelle (par exemple 105) ou l'une des valeurs de l'énumération SPListTemplateType (telle que Contacts). Si la liste est configurée de manière à faire partie du type de site dans le fichier Onet.xml de la définition de site, IDTypeListe correspond à la valeur de l'attribut Type de l'élément List dans Onet.xml qui se trouve dans le répertoire suivant : Lecteur_local:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SITETEMPLATES\Type_Site\xml. (Pour obtenir la liste des numéros d’identification de tous les types de liste fournis avec Windows SharePoint Services 3.0, voir Système de rendu des pages mobiles.) Si la liste a été ajoutée sur le site dans l'interface utilisateur, autrement dit, la page Nouveau(liste), IDTypeListe correspond à l'ID du type de liste utilisé comme base du nouveau type de liste. Cela est déterminé par le lien sur lequel l'utilisateur clique dans la page Créer (create.aspx) pour accéder à la page Nouveau.

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 RenderingTemplate de rendu de champ figurant déjà dans MobileDefaultTemplates.ascx lorsque Windows SharePoint Services est installé.

  • MobileCustomListField_Contacts_Text_WorkPhone

  • MobileCustomListField_Contacts_Text_HomePhone

  • MobileCustomListField_Contacts_Text_CellPhone

  • MobileCustomListField_Contacts_Text_Email

  • MobileCustomListField_PictureLibrary_Computed_ImageSize

  • MobileCustomListField_Posts_DateTime_PublishedDate

Vous ne pouvez pas modifier le fichier MobileDefaultTemplates.ascx. Vous pouvez créer de nouveaux éléments RenderingTemplate portant le même nom (dans votre propre fichier .aspx), mais vous risquez de porter préjudice aux autres solutions installées dans le déploiement Windows SharePoint Services et qui reposent sur des éléments RenderingTemplate d'origine portant ces noms.

Remarque Remarque :

Les RenderingTemplate fournis avec Windows SharePoint Services 3.0 étant chargés avant les modèles de rendu personnalisés, lorsqu'un modèle de rendu personnalisé portant le même nom que l'un des modèles de rendu existants est chargé, il substitue 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 :

  1. Dans Microsoft Visual Studio, le Bloc-notes ou un éditeur de texte, créez un fichier de contrôle utilisateur (.ascx) dans le répertoire \Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES.

  2. Pour enregistrer ou importer les espaces de noms appropriés, ajoutez les directives de page nécessaires dans le fichier .ascx.

  3. Ajoutez un modèle de rendu dans le fichier .ascx et attribuez-lui un ID dans le 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). Pour plus d'informations, voir plus haut.

    • TypeChamp représente le type de données du champ. Pour plus d'informations, voir plus haut.

    • Champ représente le nom du champ. Pour plus d'informations, voir plus haut.

    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.

  4. Enregistrez le fichier .ascx et réinitialisez Internet Information Services (IIS) pour que les modifications soient prises en compte.

Exemple

L'exemple suivant d'une définition RenderingTemplate montre comment créer un nouveau champ Title pour les éléments des listes Announcement. Pour obtenir des exemples détaillés, voir Procédure pas à pas : personnalisation des titres d'élément sur un formulaire d'affichage mobile 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

Afficher: