Freigeben über


Deklarative Syntax des Repeater-Webserversteuerelements

Aktualisiert: November 2007

Erstellt ein datengebundenes Listensteuerelement, das ein benutzerdefiniertes Layout ermöglicht, indem eine angegebene Vorlage auf jedes in der Liste angezeigte Element angewendet wird.

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

Hinweise

Mit dem Repeater-Steuerelement können Sie eine grundlegende, mithilfe von Vorlagen definierte datengebundene Liste anzeigen. Das Repeater-Steuerelement enthält keine integrierten Layouts oder Formate. Daher müssen alle HTML-Tags für Layout, Formatierung und Formatvorlagen explizit in den Vorlagen für das Steuerelement deklariert werden.

Das Repeater-Steuerelement unterscheidet sich von anderen Datenlistensteuerelementen darin, dass Sie damit HTML-Fragmente in die Vorlagen platzieren können. Dadurch können Sie eine komplexe HTML-Struktur erstellen, z. B. eine Tabelle. Um beispielsweise eine Liste innerhalb einer HTML-Tabelle zu generieren, beginnen Sie mit der Tabelle, indem Sie das <table>-Tag in die HeaderTemplate platzieren. Als Nächstes erstellen Sie die Zeilen und Spalten der Tabelle, indem Sie <tr>-Tags, <td>-Tags und datengebundene Elemente in der ItemTemplate platzieren. Falls Sie für alternierende Elemente in der Tabelle ein anderes Aussehen wünschen, erstellen Sie eine AlternatingItemTemplate mit dem gleichen Inhalt wie ItemTemplate, jedoch mit einem anderen Format. Zuletzt vervollständigen Sie die Tabelle, indem Sie das </table>-Tag in die FooterTemplate platzieren.

In der folgenden Tabelle sind die verschiedenen Vorlagen für das Repeater-Steuerelement aufgelistet.

Vorlage

Beschreibung

AlternatingItemTemplate

Entspricht dem ItemTemplate-Element, wird jedoch für jede zweite Zeile (alternierende Elemente) im Repeater-Steuerelement gerendert. Sie können ein anderes Erscheinungsbild für das AlternatingItemTemplate-Element angeben, indem Sie dessen Formateigenschaften festlegen.

FooterTemplate

Elemente, die einmal gerendert werden, nachdem alle datengebundenen Zeilen gerendert worden sind. Eine typische Verwendung hierfür ist das Schließen eines Elements, das im HeaderTemplate-Element geöffnet wurde (mit einem Tag wie </table>).

Tipp

FooterTemplate kann nicht datengebunden sein.

HeaderTemplate

Elemente, die einmal gerendert werden, bevor alle datengebundenen Zeilen angezeigt werden. Eine typische Verwendung hierfür ist der Beginn eines Containerelements, z. B. einer Tabelle.

Tipp

Das HeaderTemplate-Element kann nicht datengebunden sein.

ItemTemplate

Elemente, die für jede Zeile in der Datenquelle nur einmal gerendert werden. Um Daten in der ItemTemplate anzuzeigen, deklarieren Sie ein oder mehrere Webserversteuerelemente und legen deren Datenbindungsausdrücke so fest, dass sie in ein Feld in der DataSource des Repeater-Steuerelements (also des Containersteuerelements) ausgewertet werden. Das folgende Beispiel veranschaulicht eine Deklaration, in der das Feld, das den Vornamen enthält, in einem Label-Steuerelement angezeigt wird.

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

SeparatorTemplate

Elemente, die zwischen jeder Zeile gerendert werden, typischerweise Zeilenumbrüche ((<br>-Tags), horizontale Linien ((<hr>-Tags) usw.

Tipp

Das SeparatorTemplate-Element kann nicht datengebunden sein.

Das Repeater-Steuerelement verfügt über keine integrierte Auswahl- oder Bearbeitungsmöglichkeit. Sie können einen Handler für das ItemCommand-Ereignis des Steuerelements erstellen, um Steuerelementereignisse zu verarbeiten, die von den Vorlagen an das Steuerelement gesendet werden.

Das Steuerelement bindet seine Item-Vorlage und seine AlternatingItem-Vorlage an eine Datenstruktur, auf die in der DataSource-Eigenschaft oder der DataSourceID-Eigenschaft des Steuerelements verwiesen wird. (Die Header, Footer-Vorlage und die Separator-Vorlage können nicht datengebunden sein.) Wenn die DataSource-Eigenschaft des Repeater-Steuerelements festgelegt ist, aber keine Daten zurückgegeben werden, stellt das Steuerelement die Header-Vorlage und die Footer-Vorlage dar, jedoch keine Elemente. Wenn die DataSource-Eigenschaft nicht festgelegt ist, wird das Repeater-Steuerelement nicht gerendert.

Warnung

Text wird erst dann HTML-codiert, wenn er im Repeater-Steuerelement angezeigt wird. Auf diese Weise können Skripts in HTML-Tags in den Text eingebunden werden. Wenn die Werte in diesem Steuerelement aus Benutzereingaben stammen, müssen die Werte unbedingt validiert werden, um die Sicherheit zu gewährleisten.

Ausführliche Informationen zu den Eigenschaften und Ereignissen von Repeater-Webserversteuerelementen finden Sie in der Dokumentation zur Repeater-Klasse.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der DataSourceID-Eigenschaft die Datenquelle für ein Repeater-Steuerelement angegeben wird. Die DataSourceID-Eigenschaft wird auf die ID-Eigenschaft des SqlDataSource-Steuerelements festgelegt, mit dem die Daten abgerufen werden. Beim Laden der Seite wird das Repeater-Steuerelement automatisch an die durch das SqlDataSource-Steuerelement angegebene Datenquelle gebunden, und die Daten werden dem Benutzer angezeigt.

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

Siehe auch

Referenz

Repeater

Weitere Ressourcen

Syntax des Webserversteuerelements