Partager via


Syntaxe déclarative du contrôle serveur Web Repeater

Mise à jour : novembre 2007

Crée un contrôle de liste lié aux données qui permet une mise en page personnalisée en appliquant de façon répétée un modèle donné à chaque élément affiché dans la liste.

<asp:Repeater
    DataMember="string"
    DataSource="string"
    DataSourceID="string"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnItemCommand="ItemCommand event handler"
    OnItemCreated="ItemCreated event handler"
    OnItemDataBound="ItemDataBound event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnUnload="Unload event handler"
    runat="server"
    Visible="True|False"
>
        <AlternatingItemTemplate>
            <!-- child controls -->
        </AlternatingItemTemplate>
        <FooterTemplate>
            <!-- child controls -->
        </FooterTemplate>
        <HeaderTemplate>
            <!-- child controls -->
        </HeaderTemplate>
        <ItemTemplate>
            <!-- child controls -->
        </ItemTemplate>
        <SeparatorTemplate>
            <!-- child controls -->
        </SeparatorTemplate>
</asp:Repeater>

Notes

Utilisez le contrôle Repeater pour créer une liste simple liée aux données et basée sur des modèles. Le contrôle Repeater ne comporte aucune disposition ou styles intégrés ; vous devez déclarer explicitement toutes les balises HTML pour la disposition, la mise en forme et le style dans les modèles du contrôle.

Le contrôle Repeater est différent d'autres contrôles de liste de données en cela qu'il permet de placer des fragments de code HTML dans ses modèles. Vous pouvez ainsi créer une structure HTML complexe, telle qu'un tableau. Par exemple, pour créer une liste dans un tableau HTML, commencez le tableau en plaçant la balise <table> dans la propriété HeaderTemplate. Ensuite, créez les lignes et les colonnes du tableau en plaçant les balises <tr> et <td> ainsi que les éléments liés aux données dans la propriété ItemTemplate. Si vous souhaitez appliquer une apparence différente aux éléments de remplacement du tableau, créez une propriété AlternatingItemTemplate avec le même contenu que ItemTemplate mais un style différent. Enfin, terminez le tableau en plaçant la balise </table> dans FooterTemplate.

Le tableau suivant répertorie les différents modèles du contrôle Repeater.

Modèle

Description

AlternatingItemTemplate

Similaire à l'élément ItemTemplate mais rendu une ligne sur deux (éléments de remplacement) dans le contrôle Repeater. Vous pouvez spécifier une apparence différente pour l'élément AlternatingItemTemplate en définissant ses propriétés de style.

FooterTemplate

Éléments à rendre une seule fois, après que toutes les lignes liées aux données ont été rendues. Une utilisation courante consiste à fermer un élément ouvert dans l'élément HeaderTemplate (avec une balise telle que </table>).

Remarque :

FooterTemplate ne peut pas être lié aux données.

HeaderTemplate

Éléments à rendre une seule fois, avant que toutes les lignes liées aux données aient été rendues. Une utilisation fréquente consiste à commencer un élément conteneur, tel qu'un tableau.

Remarque :

L'élément HeaderTemplate ne peut pas être lié aux données.

ItemTemplate

Éléments rendus une seule fois pour chaque ligne de la source de données. Pour afficher des données dans l'élément ItemTemplate, déclarez un ou plusieurs contrôles serveur Web et configurez leurs expressions de liaison de données pour qu'elles évaluent un champ dans l'élément DataSource du contrôle Repeater (c.-à-d. le contrôle conteneur). Le code suivant affiche un exemple de déclaration qui affiche le champ contenant le prénom dans un contrôle Label.

First Name:
<asp:Label runat="server"
   Text="<%# Container.DataItem.FirstName %>" />

SeparatorTemplate

Éléments à restituer entre chaque ligne, en général des sauts de ligne (balises (<br>), des lignes horizontales (balises (<hr>), etc.

Remarque :

L'élément SeparatorTemplate ne peut pas être lié aux données.

Le contrôle Repeater n'a pas de prise en charge d'édition ou de sélection intégrée. Vous pouvez créer un gestionnaire pour l'événement ItemCommand du contrôle pour traiter les événements de contrôle envoyés par les modèles au contrôle.

Le contrôle lie ses modèles Item et AlternatingItem à une structure de données référencée dans les propriétés DataSource ou DataSourceID du contrôle. (Les modèles Header, Footer et Separator ne peuvent pas être liés aux données.) Si la propriété DataSource du contrôle Repeater est définie mais si aucune donnée n'est retournée, le contrôle restitue les modèles Header et Footer mais aucun élément. Si la propriété DataSource n'est pas définie, le contrôle Repeater n'est pas restitué.

Attention :

Le texte n'est pas codé au format HTML avant d'être affiché dans le contrôle Repeater. Il est ainsi possible d'incorporer du script dans les balises HTML dans le texte. Si les valeurs du contrôle proviennent des entrées d'utilisateur, veillez à valider les valeurs pour permettre d'empêcher les failles de sécurité.

Pour plus d'informations sur les propriétés et événements du contrôle serveur Web Repeater, consultez la documentation de la classe Repeater.

Exemple

L'exemple de code suivant montre comment utiliser la propriété DataSourceID pour spécifier la source de données d'un contrôle Repeater. La propriété DataSourceID a la valeur de la propriété ID du contrôle SqlDataSource utilisé pour récupérer les données. Lorsque la page est chargée, le contrôle Repeater est automatiquement lié à la source de données spécifiée par le contrôle SqlDataSource et les données sont affichées à l'utilisateur.

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>Repeater.DataSourceID Property Example</title>
</head>

  <body>
    <form id="Form1" runat="server">

      <h3>Repeater.DataSourceID Property Example</h3>

      <asp:repeater id="Repeater1"       
        datasourceid="SqlDataSource1"
        runat="server">

        <headertemplate>
          <table border="1">
            <tr>
              <td><b>Product ID</b></td>
              <td><b>Product Name</b></td>
            </tr>
        </headertemplate>

        <itemtemplate>
          <tr>
            <td> <%# Eval("ProductID") %> </td>
            <td> <%# Eval("ProductName") %> </td>
          </tr>
        </itemtemplate>

        <footertemplate>
          </table>

        </footertemplate>
      </asp:repeater>

            <asp:sqldatasource id="SqlDataSource1"          
            connectionstring="<%$ ConnectionStrings:NorthWindConnection%>" 
        selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
        runat="server">
      </asp:sqldatasource>

    </form>      
  </body>
</html>
<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>Repeater.DataSourceID Property Example</title>
</head>

  <body>
    <form id="Form1" runat="server">

      <h3>Repeater.DataSourceID Property Example</h3>

      <asp:repeater id="Repeater1"       
        datasourceid="SqlDataSource1"
        runat="server">

        <headertemplate>
          <table border="1">
            <tr>
              <td><b>Product ID</b></td>
              <td><b>Product Name</b></td>
            </tr>
        </headertemplate>

        <itemtemplate>
          <tr>
            <td> <%# Eval("ProductID") %> </td>
            <td> <%# Eval("ProductName") %> </td>
          </tr>
        </itemtemplate>

        <footertemplate>
          </table>

        </footertemplate>
      </asp:repeater>

            <asp:sqldatasource id="SqlDataSource1"          
            connectionstring="<%$ ConnectionStrings:NorthWindConnection%>" 
        selectcommand="SELECT ProductID, ProductName FROM [Products] Where ProductID <= 10"
        runat="server">
      </asp:sqldatasource>

    </form>      
  </body>
</html>

Voir aussi

Référence

Repeater

Autres ressources

Syntaxe des contrôles serveur Web