Freigeben über


Repeater-Klasse

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

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public Class Repeater
    Inherits Control
    Implements INamingContainer
'Usage
Dim instance As Repeater
public class Repeater : Control, INamingContainer
public ref class Repeater : public Control, INamingContainer
public class Repeater extends Control implements INamingContainer
public class Repeater extends Control implements INamingContainer

Hinweise

Bei dem Repeater-Steuerelement handelt es sich um eine mit einer Vorlage versehene einfache datengebundene Liste. Sie enthält keine integrierten Layouts oder Formate. Daher müssen alle Tags für Layout, Formatierung und Stil explizit in der Vorlage für das Steuerelement deklariert werden.

Bei dem Repeater-Steuerelement handelt es sich um das einzige Websteuerelement, mit dem Markuptags über mehrere Vorlagen hinweg aufgeteilt werden können. Um eine Tabelle mit Vorlagen zu erstellen, verwenden Sie den Anfangstag für Tabellen (<table>) in HeaderTemplate, den Tag für eine einzelne Tabellenzeile (<tr>) in ItemTemplate und den Endtag für Tabellen (</table>) in FooterTemplate.

Das Repeater-Steuerelement weist keine integrierten Funktionen für das Markieren und keine integrierte Unterstützung für das Bearbeiten auf. Mit dem ItemCommand-Ereignis können Sie Steuerelementereignisse verarbeiten, die durch die Vorlagen des Steuerelements ausgelöst werden.

Das Repeater-Steuerelement stellt zur Unterstützung der Datenbindung zwei Eigenschaften bereit. Zum Binden von Daten an ein beliebiges Objekt, das die System.Collections.IEnumerable-Schnittstelle (z. B. eine System.Data.DataView, System.Collections.ArrayList, System.Collections.Hashtable oder ein Array) oder die IListSource-Schnittstelle implementiert, geben Sie mithilfe der DataSource-Eigenschaft die Datenquelle für die Bindung an. Wenn Sie die DataSource-Eigenschaft festlegen, müssen Sie den Code zum Durchführen der Datenbindung manuell schreiben. Legen Sie zum automatischen Binden des Repeater-Steuerelements an eine durch ein Datenquellen-Steuerelement dargestellte Datenquelle die DataSourceID-Eigenschaft auf die ID des zu verwendenden Datenquellen-Steuerelements fest. Wenn Sie die DataSourceID-Eigenschaft festlegen, wird das Repeater-Steuerelement bei der ersten Anforderung automatisch an das angegebene Datenquellen-Steuerelement gebunden. Daher muss die DataBind-Methode nicht explizit aufgerufen werden, es sei denn, datenbezogene Eigenschaften des Repeater-Steuerelements wurden geändert.

Ein Repeater-Steuerelement bindet seine ItemTemplate und seine AlternatingItemTemplate entweder an das Datenmodell, das durch seine DataSource-Eigenschaft deklariert wird und auf das durch diese Eigenschaft verwiesen wird, oder an das von der DataSourceID-Eigenschaft angegebene Datenquellen-Steuerelement. HeaderTemplate, FooterTemplate und SeparatorTemplate sind nicht datengebunden.

Wenn die Datenquelle des Repeater-Steuerelements festgelegt ist, aber keine Daten zurückgegeben werden, gibt das Steuerelement die HeaderTemplate und die FooterTemplate ohne Elemente wieder. Wenn die Datenquelle NULL (Nothing in Visual Basic) ist, wird der Repeater nicht wiedergegeben.

Durch jedes Repeater-Steuerelement muss mindestens eine ItemTemplate definiert werden. Die Darstellung der Liste kann jedoch auch mithilfe anderer optionaler Vorlagen, die in der folgenden Tabelle beschrieben sind, angepasst werden.

Vorlagenname

Beschreibung

ItemTemplate

Definiert Inhalt und Layout der Elemente in der Liste. Diese Vorlage ist erforderlich.

AlternatingItemTemplate

Wenn definiert, wird hierdurch Inhalt und Layout von abwechselnden Elementen (nullbasiert, mit ungeradem Index) bestimmt. Wenn nicht definiert, wird ItemTemplate verwendet.

SeparatorTemplate

Wenn definiert, erfolgt die Wiedergabe zwischen Elementen (und abwechselnden Elementen). Wenn nicht definiert, wird kein Trennzeichen gerendert.

HeaderTemplate

Wenn definiert, werden hierdurch Inhalt und Layout der Listenkopfzeile bestimmt. Wenn nicht definiert, wird keine Kopfzeile gerendert.

FooterTemplate

Wenn definiert, werden hierdurch Inhalt und Layout der Listenfußzeile bestimmt. Wenn nicht definiert, wird keine Fußzeile gerendert.

Warnung

Mithilfe dieses Steuerelements können Benutzereingaben angezeigt werden, die u. U. bösartige Clientskripts enthalten. Überprüfen Sie alle von einem Client gesendeten Informationen auf ausführbare Skripts, SQL-Anweisungen oder sonstigen Code, bevor Sie sie in Ihrer Anwendung anzeigen. ASP.NET stellt ein Feature zur Anforderungsvalidierung von Eingaben bereit, um Skripts und HTML in Benutzereingaben zu blockieren. Serversteuerelemente zur Validierung werden ebenfalls bereitgestellt, um Benutzereingaben zu bewerten. Weitere Informationen finden Sie unter Syntax von Validierungs-Serversteuerelementen.

Thema Position
Gewusst wie: Erstellen von Vorlagen für ASP.NET-Webserversteuerelemente Erstellen von ASP.NET-Webanwendungen
Exemplarische Vorgehensweise: Datenbindung an ein benutzerdefiniertes Geschäftsobjekt Erstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erstellen und Verwenden von ASP.NET-Masterseiten in Visual Web Developer Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Erstellen von Vorlagen für Webserver-Steuerelemente mithilfe des Designers Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von Repeater-Webserversteuerelementen zu einer Web Forms-Seite (Visual Studio) Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement in Visual Studio Erstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Erstellen und Verwenden von ASP.NET-Masterseiten in Visual Web Developer Erstellen von Anwendungen mit Visual Web Developer
Gewusst wie: Deklaratives Erstellen von Vorlagen für ASP.NET-Websteuerelemente Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Hinzufügen von Steuerelementen zu einer ASP.NET-Webseite Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Erstellen von Vorlagen für Webserver-Steuerelemente mithilfe des Designers Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Dynamisches Erstellen von Vorlagen für ASP.NET-Webserversteuerelemente Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von Repeater-Webserversteuerelementen zu einer Web Forms-Seite Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement Erstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Datenbindung an ein benutzerdefiniertes Geschäftsobjekt Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement in Visual Studio Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Reagieren auf Schaltflächenereignisse in DataList- oder Repeater-Elementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Deklaratives Erstellen von Vorlagen für ASP.NET-Websteuerelemente Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Hinzufügen von Steuerelementen zu einer ASP.NET-Webseite Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Erstellen von Vorlagen für Webserver-Steuerelemente mithilfe des Designers Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Dynamisches Erstellen von Vorlagen für ASP.NET-Webserversteuerelemente Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von Repeater-Webserversteuerelementen zu einer Web Forms-Seite Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement Erstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Datenbindung an ein benutzerdefiniertes Geschäftsobjekt Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement in Visual Studio Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Reagieren auf Schaltflächenereignisse in DataList- oder Repeater-Elementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Deklaratives Erstellen von Vorlagen für ASP.NET-Websteuerelemente Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Hinzufügen eines Repeater-Steuerelements zu einer Web Forms-Seite Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Programmgesteuertes Hinzufügen von Steuerelementen zu einer ASP.NET-Webseite Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Dynamisches Erstellen von Vorlagen für ASP.NET-Webserversteuerelemente Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Binden an Daten in einem vorlagenbasierten Steuerelement Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Reagieren auf Schaltflächenereignisse in DataList-, Repeater- oder GridView-Elementen Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Codebeispiel wird die Verwendung von zwei einfachen Repeater-Steuerelementen auf einer Seite veranschaulicht. Mithilfe der DataSource-Eigenschaft wird die Datenquelle für das Repeater-Steuerelement angegeben. Im ersten Repeater werden die Elemente in einer Tabelle angezeigt; im zweiten Repeater werden die Elemente in einer durch Trennzeichen getrennten Liste angezeigt.

<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
 <head>
    <script language="VB" runat="server">

    Sub Page_Load(Sender As Object, e As EventArgs)
        If Not IsPostBack Then
            Dim values As New ArrayList()
            
            values.Add(New PositionData("Microsoft", "Msft"))
            values.Add(New PositionData("Intel", "Intc"))
            values.Add(New PositionData("Dell", "Dell"))
            
            Repeater1.DataSource = values
            Repeater1.DataBind()
            
            Repeater2.DataSource = values
            Repeater2.DataBind()
        End If
    End Sub

    Public Class PositionData
        
        Private myName As String
        Private myTicker As String        
        
        Public Sub New(newName As String, newTicker As String)
            Me.myName = newName
            Me.myTicker = newTicker
        End Sub        
        
        Public ReadOnly Property Name() As String
            Get
                Return myName
            End Get
        End Property        
        
        Public ReadOnly Property Ticker() As String
            Get
                Return myTicker
            End Get
        End Property
    End Class
 
    </script>
 
 </head>
 <body>
 
    <h3>Repeater Example</h3>
 
    <form runat=server>
 
       <b>Repeater1:</b>
         
       <p>
         
       <asp:Repeater id=Repeater1 runat="server">
          <HeaderTemplate>
             <table border=1>
                <tr>
                   <td><b>Company</b></td>
                   <td><b>Symbol</b></td>
                </tr>
          </HeaderTemplate>
             
          <ItemTemplate>
             <tr>
                <td> <%# DataBinder.Eval(Container.DataItem, "Name") %> </td>
                <td> <%# DataBinder.Eval(Container.DataItem, "Ticker") %> </td>
             </tr>
          </ItemTemplate>
             
          <FooterTemplate>
             </table>

          </FooterTemplate>
             
       </asp:Repeater>
       <p>
         
       <b>Repeater2:</b>
       <p>
       <asp:Repeater id=Repeater2 runat="server">
         
          <HeaderTemplate>
             Company data:
          </HeaderTemplate>
             
          <ItemTemplate>
             <%# DataBinder.Eval(Container.DataItem, "Name") %> (<%# DataBinder.Eval(Container.DataItem, "Ticker") %>)
          </ItemTemplate>
             
          <SeparatorTemplate>, </SeparatorTemplate>
       </asp:Repeater>
    </form>
 </body>
 </html>
 
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
 <head>
    <script language="C#" runat="server">
       void Page_Load(Object Sender, EventArgs e) {
          if (!IsPostBack) {
             ArrayList values = new ArrayList();
 
             values.Add(new PositionData("Microsoft", "Msft"));
             values.Add(new PositionData("Intel", "Intc"));
             values.Add(new PositionData("Dell", "Dell"));
 
             Repeater1.DataSource = values;
             Repeater1.DataBind();
                 
             Repeater2.DataSource = values;
             Repeater2.DataBind();
          }
       }
 
       public class PositionData {
         
          private string name;
          private string ticker;
 
          public PositionData(string name, string ticker) {
             this.name = name;
             this.ticker = ticker;
          }
 
          public string Name {
             get {
                return name;
             }
          }
 
          public string Ticker {
             get {
                return ticker;
             }
          }
       }
 
    </script>
 
 </head>
 <body>
 
    <h3>Repeater Example</h3>
 
    <form runat=server>
 
       <b>Repeater1:</b>
         
       <p>
         
       <asp:Repeater id=Repeater1 runat="server">
          <HeaderTemplate>
             <table border=1>
                <tr>
                   <td><b>Company</b></td>
                   <td><b>Symbol</b></td>
                </tr>
          </HeaderTemplate>
             
          <ItemTemplate>
             <tr>
                <td> <%# DataBinder.Eval(Container.DataItem, "Name") %> </td>
                <td> <%# DataBinder.Eval(Container.DataItem, "Ticker") %> </td>
             </tr>
          </ItemTemplate>
             
          <FooterTemplate>
             </table>

          </FooterTemplate>
             
       </asp:Repeater>
       <p>
         
       <b>Repeater2:</b>
       <p>
       <asp:Repeater id=Repeater2 runat="server">
         
          <HeaderTemplate>
             Company data:
          </HeaderTemplate>
             
          <ItemTemplate>
             <%# DataBinder.Eval(Container.DataItem, "Name") %> (<%# DataBinder.Eval(Container.DataItem, "Ticker") %>)
          </ItemTemplate>
             
          <SeparatorTemplate>, </SeparatorTemplate>
       </asp:Repeater>
    </form>
 </body>
 </html>
 

Im folgenden Codebeispiel wird veranschaulicht, wie mit 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 stellt das Repeater-Steuerelement automatisch die Bindung zu der durch das SqlDataSource-Steuerelement angegebenen Datenquelle her, und die Daten werden angezeigt.

<%@ Page Language="VB" %>

<html>
  <head>
  </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#" %>

<html>
  <head>
  </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>

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
   System.Web.UI.Control
    System.Web.UI.WebControls.Repeater

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

Repeater-Member
System.Web.UI.WebControls-Namespace
DataGrid-Klasse
DataList-Klasse

Weitere Ressourcen

Repeater-Webserver-Steuerelement