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.
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
- AspNetHostingPermission zum Ausführen des Repeater-Steuerelements in einer Hostumgebung. Zugeordnete Enumeration: AspNetHostingPermissionLevel.Minimal
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