Freigeben über


Übersicht über das Repeater-Webserversteuerelement

Aktualisiert: November 2007

Das Repeater-Webserversteuerelement ist ein datengebundenes Containersteuerelement, mit dem eine Liste einzelner Elemente erstellt wird. Sie definieren das Layout einzelner Elemente auf einer Webseite mithilfe von Vorlagen. Bei der Ausführung der Seite wiederholt das Steuerelement das Layout für jedes Element in der Datenquelle.

Dieses Thema enthält folgende Abschnitte:

  • Hintergrund

  • Codebeispiele

  • Klassenreferenz

Hintergrund

Das Repeater-Webserversteuerelement ist ein Containersteuerelement, mit dem Sie benutzerdefinierte Listen aus beliebigen, der Seite zur Verfügung stehenden Daten erstellen können. Das Repeater-Steuerelement verfügt über keine integrierte Renderingfunktion, d. h., Sie müssen das Layout des Repeater-Steuerelements durch Vorlagen vorgeben. Beim Ausführen der Seite durchläuft das Repeater-Steuerelement die Datensätze der Datenquelle und stellt für jeden Datensatz ein Element dar.

Da das Repeater-Steuerelement nicht über ein Standardaussehen verfügt, können Sie es zum Erstellen vieler verschiedener Arten von Listen verwenden:

  • Tabellenlayout

  • Durch Trennzeichen getrennte Liste (z. B. a, b, c, d usw.)

  • XML-formatierte Liste

Verwenden von Vorlagen mit dem Repeater-Steuerelement

Um das Repeater-Steuerelement zu verwenden, müssen Sie Vorlagen definieren, die das Layout des Steuerelementinhalts definieren. Vorlagen können eine beliebige Kombination aus Markup und Steuerelementen enthalten. Wenn keine Vorlagen definiert sind oder keine der Vorlagen Elemente enthält, wird das Steuerelement bei Ausführung der Anwendung nicht auf der Seite angezeigt.

Die folgende Tabelle beschreibt die Vorlagen, die vom Repeater-Steuerelement unterstützt werden.

Vorlageneigenschaft

Beschreibung

ItemTemplate

Enthält die HTML-Elemente und Steuerelemente, die einmal für jedes Datenelement in der Datenquelle dargestellt werden.

AlternatingItemTemplate

Enthält die HTML-Elemente und Steuerelemente, die einmal für jedes zweite Datenelement in der Datenquelle dargestellt werden. Diese Vorlage wird normalerweise dazu verwendet, um jedem zweiten Element ein besonderes Aussehen zu geben, z. B. eine andere Hintergrundfarbe als in ItemTemplate angegeben.

HeaderTemplate und FooterTemplate

Enthält den Text und die Steuerelemente, die am Anfang bzw. am Ende der Liste dargestellt werden sollen.

SeparatorTemplate

Enthält die Elemente, die zwischen den einzelnen Elementen dargestellt werden sollen. Das kann z. B. eine Linie sein (unter Verwendung eines hr-Elements).

Weitere Informationen finden Sie unter Vorlagen für ASP.NET-Webserver-Steuerelemente.

Binden von Daten an das Repeater-Steuerelement

Das Repeater-Steuerelement muss an eine Datenquelle gebunden werden. Die gängigsten Datenquellen sind Datenquellensteuerelemente, z. B. das SqlDataSource-Steuerelement oder das ObjectDataSource-Steuerelement. Sie können ein Repeater-Steuerelement auch an eine Klasse binden, die die IEnumerable-Schnittstelle implementiert. Dazu zählen ADO.NET-Datasets (die DataSet-Klasse), Datenreader (die SqlDataReader-Klasse oder die OleDbDataReader-Klasse) sowie die meisten Auflistungen.

Beim Binden von Daten müssen Sie eine Datenquelle für das gesamte Repeater-Steuerelement angeben. Wenn Sie dem Repeater-Steuerelement Steuerelemente hinzufügen – z. B. beim Hinzufügen eines Label-Steuerelements oder eines TextBox-Steuerelements zu einer Vorlage – müssen Sie die Syntax für die Datenbindung verwenden, um ein einzelnes Steuerelement an ein Feld mit den von der Datenquelle zurückgegebenen Elementen zu binden. Das folgende Beispiel zeigt ein ItemTemplate, das ein datengebundenes Label-Steuerelement enthält.

<%@ 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 id="Head1" >
  <title>ASP.NET Repeater Example</title>
</head>
<body>
  <form id="form1" >
    <div>
      <asp:Repeater ID="Repeater1"  DataSourceID="SqlDataSource1">
        <HeaderTemplate>
          <table>
            <tr>
              <th>
                Name</th>
              <th>
                Description</th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label1" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label2" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </ItemTemplate>
        <AlternatingItemTemplate>
          <tr>
            <td>
              <asp:Label  ID="Label3" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td>
              <asp:Label  ID="Label4" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>
      <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        ID="SqlDataSource1"  SelectCommand="SELECT [CategoryID], [CategoryName], 
            [Description] FROM [Categories]"></asp:SqlDataSource>
    </div>
  </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 id="Head1" >
  <title>ASP.NET Repeater Example</title>
</head>
<body>
  <form id="form1" >
    <div>
      <asp:Repeater ID="Repeater1"  DataSourceID="SqlDataSource1">
        <HeaderTemplate>
          <table>
            <tr>
              <th>
                Name</th>
              <th>
                Description</th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label1" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label2" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </ItemTemplate>
        <AlternatingItemTemplate>
          <tr>
            <td>
              <asp:Label  ID="Label3" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td>
              <asp:Label  ID="Label4" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>
      <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        ID="SqlDataSource1"  SelectCommand="SELECT [CategoryID], [CategoryName], 
              [Description] FROM [Categories]"></asp:SqlDataSource>
    </div>
  </form>
</body>
</html>
Hinweis:

Sie können mit der Eval-Datenbindungsfunktion keine Steuerelemente in den Header-, Footer- und Trennzeichenvorlagen binden. Wenn Sie in diesen Vorlagen Steuerelemente verwenden, können Sie die Eigenschaften der Steuerelemente einfach statisch definieren.

Eine Übersicht zur Datenbindung in Webserversteuerelementen finden Sie unter Exemplarische Vorgehensweise: Grundlegender Datenzugriff auf Webseiten und Gewusst wie: Hinzufügen von Repeater-Webserversteuerelementen zu einer Web Forms-Seite.

Vom Repeater-Steuerelement unterstützte Ereignisse

Das Repeater-Steuerelement unterstützt mehrere Ereignisse. Mit dem ItemCreated-Ereignis können Sie den Elementerstellungsprozess zur Laufzeit anpassen. Das ItemDataBound-Ereignis ermöglicht ebenfalls die Anpassung des Repeater-Steuerelements, jedoch nachdem die Daten für die Überprüfung zur Verfügung stehen. Wenn Sie beispielsweise das Repeater-Steuerelement zum Anzeigen einer Aufgabenliste verwenden, können Sie überfällige Elemente in rotem, abgeschlossene in schwarzem und andere Aufgaben in grünem Text darstellen. Jedes Ereignis kann dazu verwendet werden, Formatierungen der Vorlagendefinition zu überschreiben.

Das ItemCommand-Ereignis wird ausgelöst, wenn in einem einzelnen Element auf eine Schaltfläche geklickt wird. Das Ereignis ist so angelegt, dass Sie die Webserversteuerelemente Button, LinkButton und ImageButton in eine Elementvorlage einbetten können und dann bei einem Klicken auf die Schaltfläche benachrichtigt werden. Wenn ein Benutzer auf die Schaltfläche klickt, wird das Ereignis an den Container der Schaltfläche, das Repeater-Steuerelement, gesendet. Das ItemCommand-Ereignis wird in der Regel dafür eingesetzt, das Verhalten des Repeater-Steuerelements beim Aktualisieren und Löschen von Elementen zu programmieren. Da jeder Klick auf eine Schaltfläche das gleiche ItemCommand-Ereignis auslöst, ist für das Ermitteln der angeklickten Schaltfläche ein Festlegen der CommandName-Eigenschaft der einzelnen Schaltflächen auf eindeutige Zeichenfolgen erforderlich. Die CommandSource-Eigenschaft des RepeaterCommandEventArgs-Parameters enthält die CommandName-Eigenschaft der angeklickten Schaltfläche.

Weitere Informationen finden Sie unter Gewusst wie: Reagieren auf Schaltflächenereignisse in DataList- oder Repeater-Elementen.

Zurück nach oben

Codebeispiele

Gewusst wie: Hinzufügen von Repeater-Webserversteuerelementen zu einer Web Forms-Seite

Zurück nach oben

Klassenreferenz

In der folgenden Tabelle werden die Hauptklassen aufgelistet, die sich auf das Repeater-Steuerelement beziehen.

Member

Beschreibung

Repeater

Die Hauptklasse des Steuerelements.

Zurück nach oben

Siehe auch

Referenz

Übersicht über das DataList-Webserversteuerelement