Partager via


Fonctionnement des formulaires SharePoint

Dernière modification : mercredi 7 juillet 2010

S’applique à : SharePoint Foundation 2010

Chaque type de liste possède généralement un jeu de pages ASPX de formulaire d’affichage, de modification et de création (DispForm.aspx, EditForm.aspx et NewForm.aspx) qui sont mises en service lorsque les listes le sont. Ces pages ASPX sont mises en service dans l’espace de contenu. En d’autres termes, elles ne se trouvent pas dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS et elles ne fonctionnent pas dans le répertoire virtuel /_layouts. Pour les bibliothèques de documents, ces pages sont mises en service dans un sous-dossier masqué de la liste, nommé forms. Pour les autres listes SharePoint, les pages sont mises en service sous le dossier racine de la liste. Chacune de ces pages ASPX contient un objet Microsoft.SharePoint.WebPartPages.ListFormWebPart qui assure le rendu du formulaire.

Microsoft SharePoint Foundation 2010 utilise Microsoft ASP.NET pour afficher des formulaires. Chaque formulaire se compose logiquement d’un ensemble de contrôles (par exemple, un contrôle pour la barre d’outils). Un contrôle spécial nommé un itérateur (Microsoft.SharePoint.WebControls.ListFieldIterator) est utilisé pour répéter la collection de champs de liste et ajouter chacun de ces champs dans le formulaire.

Options de personnalisation des modèles de formulaires

Dans les versions antérieures de SharePoint Foundation, vous deviez généralement personnaliser les formulaires de liste en modifiant les définitions de formulaire dans le fichier Schema.xml d’une liste. L’élément Form contenait les détails de rendu pour un type spécifique de formulaire, y compris pour les sous-éléments CAML (Collaborative Application Markup Language) qui définissaient le langage HTML et le script à insérer dans la page. SharePoint Foundation utilise la fonctionnalité de modèle intégrée dans les modèles de contrôle Microsoft ASP.NET.

Notes

Vous pouvez toujours appliquer des définitions de formulaire personnalisé via Schema.xml si vous affectez à l’attribut UseLegacyForm des éléments Form la valeur TRUE, mais il est recommandé d’utiliser les contrôles ASP.NET à la place.

Même si les formulaires peuvent toujours être définis dans Schema.xml, vous pouvez désormais tirer parti des fonctionnalités évoluées disponibles via les modèles de contrôle ASP.NET pour modifier les formulaires. Les modèles de contrôle impliquent un mélange d’éléments HTML et de contrôles enfants. Ils insèrent du code HTML dans la page conteneur ou le contrôle. En créant une hiérarchie de modèles de contrôle, vous pouvez créer un modèle d’héritage pour vos applications Web, et par conséquent, réutiliser votre code plus efficacement.

Par le biais des modèles de formulaires personnalisés, vous pouvez modifier la façon dont les formulaires de liste sont rendus. Dans le fichier Schema.xml de la définition de liste, vous pouvez spécifier, par type de liste, via l’attribut Template, les ID des modèles de contrôles à utiliser pour rendre les formulaires. Vous devez spécifier l’attribut Template pour les formulaires dans lesquels vous souhaitez implémenter un modèle personnalisé, qui peut être le même modèle ou un modèle différent. Si vous ne spécifiez pas un modèle personnalisé pour un formulaire, SharePoint Foundation implémente le modèle par défaut. Les modèles de contrôles personnalisés doivent être définis dans un fichier .ascx dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES. Pour plus d’informations sur l’utilisation de Microsoft Visual Studio pour créer un contrôle utilisateur qui fonctionne dans SharePoint Foundation, voir Comment : créer un contrôle utilisateur pour un composant WebPart ou une page d'application SharePoint.

Note AttentionAttention

Le remplacement d’un modèle SharePoint Foundation par défaut entraîne la modification du comportement du formulaire dans la batterie de serveurs entière. Cela empêche le formulaire de conserver le comportement du modèle par défaut lorsque vous mettez à jour les versions. Choisissez au contraire de créer votre propre modèle de liste qui utilise un modèle de formulaire personnalisé pour implémenter un comportement personnalisé.

Par exemple, vous pouvez modifier la façon dont les formulaires d’enquête sont rendus. La définition de liste de l’enquête dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\SurveysList\Survey\Schema.xml utilise l’attribut Template pour spécifier ListForm comme modèle à utiliser pour les formulaires d’affichage et le modèle SurveyForm pour les formulaires de modification et de création. Cela signifie qu’il existe des modèles de contrôle dont les ID sont égaux à ListForm et à SurveyForm et qui sont situés dans le dossier \ControlTemplates. Vous pouvez remplacer globalement les modèles de formulaires par défaut utilisés pour les formulaires d’enquête en remplaçant ces modèles. Définissez des modèles personnalisés avec les mêmes ID dans un fichier .ascx personnalisé.

Notes

Il ne peut exister qu'un seul modèle avec un ID égal à ListForm ou à SurveyForm qui sera utilisé. Par conséquent, utilisez peu cette fonctionnalité d'extension. Les ID en double ne sont pas pris en charge pour les modèles personnalisés et cela peut donner lieu à des résultats imprévisibles.

Il est également possible d'enregistrer des modèles de formulaires personnalisés par type de contenu. Si vous possédez un type de contenu spécifique, il est possible de déclarer pour lui un formulaire personnalisé à utiliser à la place du formulaire de bibliothèque de documents standard utilisé par défaut dans les bibliothèques de documents. Pour plus d'informations sur la façon de déclarer des formulaires personnalisés pour un type de contenu, voir Vue d'ensemble du schéma FormTemplates.

D’autres méthodes sont prises en charge pour afficher des formulaires. Vous ne pouvez pas supprimer le contrôle ListFormWebPart existant d’une page de formulaire de liste, mais vous pouvez le masquer. Vous pouvez ensuite ajouter, par exemple, un objet DataFormWebPart et utiliser une transformation XSLT pour rendre des formulaires pour certains éléments. Vous pouvez également définir l’URL de la page du formulaire en fonction du type de contenu (propriété DisplayFormUrl, EditFormUrl ou NewFormUrl) afin de rediriger les utilisateurs vers une page de formulaire personnalisé. En outre, vous pouvez utiliser le contrôle Microsoft.SharePoint.WebControls.SPDataSource pour lier le formulaire à des contrôles ASP.NET et pour mettre à jour des données.

Important

Bien qu’il soit possible d’ajouter des composants WebPart dans les formulaires d’affichage, de modification et de création pour des éléments de liste (DispForm.aspx, EditForm.aspx et NewForm.aspx), cette pratique n’est pas recommandée ou prise en charge dans SharePoint Foundation. L’ajout de composants WebPart aux pages d’affichage de liste (AllItems.aspx) est pris en charge.