请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
Repeater 类

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.Net Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 类库
Repeater 类

一个数据绑定列表控件,允许通过为列表中显示的每一项重复指定的模板来自定义布局。

命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)

Visual Basic(声明)
Public Class Repeater
    Inherits Control
    Implements INamingContainer
Visual Basic(用法)
Dim instance As Repeater
C#
public class Repeater : Control, INamingContainer
C++
public ref class Repeater : public Control, INamingContainer
J#
public class Repeater extends Control implements INamingContainer
JScript
public class Repeater extends Control implements INamingContainer

Repeater 控件是一个基本模板数据绑定列表。它没有内置的布局或样式,因此必须在该控件的模板内显式声明所有的布局、格式设置和样式标记。

Repeater 控件是唯一允许在模板间拆分标记的 Web 控件。若要利用模板创建表,请在 HeaderTemplate 中包含表开始标记 (<table>),在 ItemTemplate 中包含单个表行标记 (<tr>),并在 FooterTemplate 中包含表结束标记 (</table>)。

Repeater 控件没有内置的选择功能和编辑支持。可以使用 ItemCommand 事件来处理从模板引发到该控件的控件事件。

Repeater 控件提供两个属性以支持数据绑定。若要将数据绑定到实现 System.Collections.IEnumerable 接口(如 System.Data.DataViewSystem.Collections.ArrayListSystem.Collections.Hashtable 或数组)或 IListSource 接口的任意对象,请使用 DataSource 属性指定数据源。在设置 DataSource 属性时,必须手动编写代码才能执行数据绑定。若要将 Repeater 控件自动绑定到由数据源控件表示的数据源,请将 DataSourceID 属性设置为要使用的数据源控件的 ID。在设置 DataSourceID 属性时,Repeater 控件自动绑定到第一个请求上指定的数据源控件。因此,除非更改了 Repeater 控件的与数据相关的属性,否则不必显式调用 DataBind 方法。

Repeater 控件将其 ItemTemplateAlternatingItemTemplate 绑定到由其 DataSource 属性声明和引用的数据模型,或绑定到由其 DataSourceID 属性指定的数据源控件。HeaderTemplateFooterTemplateSeparatorTemplate 都未进行数据绑定。

如果设置了 Repeater 控件的数据源但未返回数据,该控件将呈现不带项的 HeaderTemplateFooterTemplate。如果数据源为 空引用(在 Visual Basic 中为 Nothing),则不呈现 Repeater

每个 Repeater 控件必须至少定义一个 ItemTemplate。但是,下表中描述的其他可选模板可用来自定义列表的外观。

模板名称

说明

ItemTemplate

定义列表中项目的内容和布局。此模板为必选。

AlternatingItemTemplate

如果定义,则可以确定交替(从零开始的奇数索引)项的内容和布局。如果未定义,则使用 ItemTemplate

SeparatorTemplate

如果定义,则呈现在项(以及交替项)之间。如果未定义,则不呈现分隔符。

HeaderTemplate

如果定义,则可以确定列表标头的内容和布局。如果没有定义,则不呈现标头。

FooterTemplate

如果定义,则可以确定列表注脚的内容和布局。如果没有定义,则不呈现注脚。

Caution note警告

此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在应用程序中显示从客户端发送来的任何信息之前,请检查它们是否包含可执行脚本、SQL 语句或其他代码。ASP.NET 提供输入请求验证功能以阻止用户输入中的脚本和 HTML。还提供验证服务器控件以判断用户输入。有关更多信息,请参见 验证服务器控件语法

TopicLocation
如何:以声明方式创建 ASP.NET Web 控件模板生成 ASP .NET Web 应用程序
如何:以声明方式创建 ASP.NET Web 控件模板在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:以编程方式向 ASP.NET 网页添加控件生成 ASP .NET Web 应用程序
如何:以编程方式向 ASP.NET 网页添加控件在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:使用设计器创建 Web 服务器控件模板在 Visual Studio 中构建 ASP .NET Web 应用程序
如何:使用设计器创建 Web 服务器控件模板在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:创建 ASP.NET Web 服务器控件模板生成 ASP .NET Web 应用程序
如何:动态创建 ASP.NET Web 服务器控件模板生成 ASP .NET Web 应用程序
如何:动态创建 ASP.NET Web 服务器控件模板在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:向 Web 窗体页添加 Repeater Web 服务器控件在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:向 Web 窗体页添加 Repeater Web 服务器控件 (Visual Studio)在 Visual Studio 中构建 ASP .NET Web 应用程序
如何:向 Web 窗体页添加 Repeater 控件生成 ASP .NET Web 应用程序
如何:响应 DataList 或 Repeater 项中的按钮事件在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:响应 DataList、Repeater 或 GridView 项中的按钮事件生成 ASP .NET Web 应用程序
如何:在模板化控件中绑定到数据生成 ASP .NET Web 应用程序
如何:在模板化控件中绑定到数据在 Visual Studio 中生成 ASP .NET Web 应用程序
如何:绑定到 Visual Studio 的模板化控件中的数据在 Visual Studio 中构建 ASP .NET Web 应用程序
如何:绑定到 Visual Studio 的模板化控件中的数据在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:到自定义业务对象的数据绑定在 Visual Studio 中构建 ASP .NET Web 应用程序
演练:到自定义业务对象的数据绑定在 Visual Studio 中生成 ASP .NET Web 应用程序
演练:在 Visual Web Developer 中创建和使用 ASP.NET 母版页在 Visual Studio 中构建 ASP .NET Web 应用程序
演练:在 Visual Web Developer 中创建和使用 ASP.NET 母版页使用 Visual Web Developer 生成应用程序

下面的代码示例演示如何在一页上使用两个简单的 Repeater 控件。DataSource 属性用于指定 Repeater 控件的数据源。第一个 Repeater 在表中显示它的项,第二个 Repeater 在逗号分隔的列表中显示它的项。

Visual Basic
<%@ 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>
 
C#
<%@ 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>
 

下面的代码示例演示如何使用 DataSourceID 属性指定 Repeater 控件的数据源。DataSourceID 属性设置为 SqlDataSource 控件的 ID 属性,该控件用于检索数据。加载页面时,Repeater 控件自动绑定到 SqlDataSource 控件指定的数据源,并向用户显示该数据。

Visual Basic
<%@ 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>
C#
<%@ 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>
System.Object
   System.Web.UI.Control
    System.Web.UI.WebControls.Repeater
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

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 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework

受以下版本支持:2.0、1.1、1.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker