Modèles de contrôles serveur Web ASP.NET

Mise à jour : novembre 2007

La plupart des contrôles serveur Web possèdent une apparence et une disposition par défaut que vous pouvez manipuler en définissant les propriétés ou en utilisant des styles. Certains contrôles serveur Web vous permettent également de personnaliser leur apparence à l'aide de modèles.

Un modèle est un ensemble d'éléments et de contrôles HTML qui constituent la disposition d'une partie particulière d'un contrôle. Par exemple, dans le contrôle serveur Web DataList, vous pouvez utiliser une combinaison de contrôles et d'éléments HTML pour créer la disposition de chaque ligne de la liste. De même, le contrôle serveur Web GridView possède une apparence par défaut pour les lignes de la grille. Toutefois, vous pouvez personnaliser l'apparence de la grille en définissant des différents modèles pour les colonnes.

Remarque :

Les modèles sont différents des styles. Un modèle définit le contenu d'une section d'un contrôle, par exemple, le contenu d'une ligne dans le contrôle DataList. Les styles spécifient l'apparence d'éléments tels que la couleur, la police, etc. Les styles peuvent s'appliquer à l'ensemble des contrôles (par exemple, pour définir la police du contrôle GridView) ainsi qu'aux éléments de modèle.

Les modèles se composent de contrôles serveur HTML et de contrôles serveur imbriqués. Lorsque le contrôle s'exécute dans la page Web ASP.NET, l'infrastructure du contrôle rend le contenu du modèle à la place du HTML par défaut du contrôle.

Quels contrôles prennent en charge les modèles ?

Tous les contrôles serveur Web ne prennent pas en charge les modèles. Les contrôles complexes prennent en charge la plupart des modèles. Cela comprend les contrôles GridView, DataList, Repeater, FormView, DetailsView, Login, ainsi que d'autres contrôles.

Chaque contrôle prend en charge un ensemble de modèles légèrement différent qui spécifie les dispositions pour des parties différentes du contrôle, telles que l'en-tête, le pied de page, les éléments et les éléments sélectionnés. Vous pouvez spécifier un modèle pour celles que vous souhaitez personnaliser. Dans le contrôle GridView, vous pouvez spécifier des modèles pour des colonnes (plutôt que des lignes).

Le tableau suivant récapitule les contrôles serveur Web qui prennent en charge les modèles.

Contrôle

Modèles

ChangePassword

  • ChangePasswordTemplate

  • SuccessTemplate

CompleteWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

CreateUserWizard

  • HeaderTemplate

  • SideBarTemplate

  • StartNavigationTemplate

  • StepNavigation

  • FinishNavigation

CreateUserWizardStep

  • ContentTemplate

  • CustomNavigationTemplate

DataList

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

  • SelectedItemTemplate

  • EditItemTemplate

DetailsView

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

FormView

  • ItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

  • HeaderTemplate

  • FooterTemplate

  • PagerTemplate

  • EmptyDataTemplate

GridView

  • PagerTemplate

  • EmptyDataTemplate

ListView

  • LayoutTemplate

  • ItemTemplate

  • ItemSeparatorTemplate

  • GroupTemplate

  • GroupSeparatorTemplate

  • EmptyItemTemplate

  • EmptyDataTemplate

  • SelectedItemTemplate

  • AlternatingItemTemplate

  • EditItemTemplate

  • InsertItemTemplate

Login

  • LayoutTemplate

LoginView

  • AnonymousTemplate

  • LoggedInTemplate

Menu

  • DynamicTemplate

  • StaticTemplate

PasswordRecovery

  • QuestionTemplate

  • SuccessTemplate

  • UserNameTemplate

Repeater

  • HeaderTemplate

  • FooterTemplate

  • ItemTemplate

  • AlternatingItemTemplate

  • SeparatorTemplate

SiteMapPath

  • CurrentNodeTemplate

  • RootNodeTemplate

  • NodeTemplate

  • PathSeparatorTemplate

TemplatePagerField

  • PageTemplate

UpdatePanel

  • ContentTemplate

UpdateProgress

  • ProgressTemplate

Wizard

  • FinishNavigationTemplate

  • HeaderTemplate

  • StartNavigationTemplate

  • StepNavigationTemplate

  • SideBarTemplate

Création de modèles

Vous pouvez créer directement des modèles dans le fichier .aspx. Les modèles sont créés comme déclarations XML. L'exemple suivant montre comment afficher une liste de noms d'employés, de numéros de téléphone et d'adresses de messagerie à l'aide des modèles dans le contrôle DataList. La disposition des informations sur les employés est spécifiée dans ItemTemplate à l'aide des contrôles liés aux données.

Remarque :

Si vous utilisez un concepteur visuel, tel que Visual Studio 2005, vous pouvez habituellement utiliser un outil visuel pour créer et modifier des modèles. Pour plus d'informations, consultez Comment : créer des modèles de contrôles serveur Web à l'aide du concepteur.

<asp:datalist id="DataList1" >
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2"  
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>
<asp:datalist id="DataList1" >
  <HeaderTemplate>
  Employee List
  </HeaderTemplate>
  <ItemTemplate>
    <asp:label id="Label1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'></asp:label>
    <asp:label id="Label2"  
        Text='<%# DataBinder.Eval(Container, "DataItem.PhoneNumber")%>'></asp:label>
    <asp:Hyperlink id="Hyperlink1"  
        Text='<%# DataBinder.Eval(Container, "DataItem.Email") %>'
        NavigateURL='<%# DataBinder.Eval(Container, "DataItem.Link") %>'>
    </asp:Hyperlink>
  </ItemTemplate>
</asp:datalist>

Utilisation de modèles

Un contrôle basé sur un modèle crée une instance du contenu de son modèle uniquement à la demande. Cela signifie que des instances des contrôles dans le modèle peuvent ne pas être créées lorsque l'événement de chargement de la page se produit. Ce comportement peut affecter l'utilisation d'un contrôle à l'intérieur d'un modèle ; vous ne pouvez pas supposer qu'une instance de contrôle à l'intérieur d'un modèle a été créée lors du chargement de la page.

Les modèles imbriqués ainsi que les fichiers maîtres imbriqués ne sont pas restitués dans le mode Design de Visual Web Developer ou Visual Studio 2005. L'imbrication est toutefois correctement rendue dans un navigateur Web.

Voir aussi

Concepts

Contrôles serveur Web ASP.NET et styles CSS

Autres ressources

Accès aux données avec ASP.NET