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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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