Share via


Sintaxis declarativa del control de servidor Web Repeater

Actualización: noviembre 2007

Crea un control de lista con enlace de datos que permite especificar un diseño personalizado aplicando la misma plantilla a cada uno de los elementos mostrados en la lista.

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

Comentarios

Utilice el control Repeater para crear una lista básica con enlace de datos basada en plantilla. El control Repeater no tiene estilos ni diseños integrados, por lo que se deben declarar explícitamente todas las etiquetas de diseño, formato y estilo HTML en las plantillas del control.

El control Repeater se diferencia de los demás controles de lista de datos ya que permite colocar fragmentos HTML en sus plantillas. Esto permite crear una estructura HTML compleja, como una tabla. Por ejemplo, para crear una lista en una tabla HTML, inicie la tabla colocando la etiqueta <table> en HeaderTemplate. A continuación, cree las filas y columnas de la tabla colocando etiquetas <tr>, etiquetas <td> y elementos enlazados a datos en ItemTemplate. Si desea que los elementos alternos de la tabla tengan otra apariencia, cree una plantillaAlternatingItemTemplate con el mismo contenido que la plantilla ItemTemplate pero con otro estilo. Por último, complete la tabla colocando la etiqueta </table> en la plantilla FooterTemplate.

En la siguiente tabla se recogen las diferentes plantillas para el control Repeater.

Plantilla

Descripción

AlternatingItemTemplate

Similar al elemento ItemTemplate, pero se representa para cada dos filas (elementos alternos) del control Repeater. Se puede especificar otra apariencia para el elemento AlternatingItemTemplate estableciendo el valor de sus propiedades de estilo.

FooterTemplate

Elementos que se representan una sola vez después de haberse representado todas las filas enlazadas a datos. Esta plantilla se suele utilizar para cerrar un elemento abierto en el elemento HeaderTemplate (con una etiqueta como </table>).

c012haty.alert_note(es-es,VS.90).gifNota:
FooterTemplate no se puede enlazar a datos.

HeaderTemplate

Elementos que se representan una sola vez antes de haberse representado todas las filas enlazadas a datos. Esta plantilla se suele utilizar para iniciar un elemento contenedor, como una tabla.

c012haty.alert_note(es-es,VS.90).gifNota:
Los elementos de HeaderTemplate no se pueden enlazar a datos.

ItemTemplate

Elementos que se representan una sola vez para cada fila del origen de datos. Para mostrar datos en ItemTemplate, declare uno o varios controles de servidor Web y establezca sus expresiones de enlace de datos para que se evalúen en un campo del DataSource del control Repeater (es decir, del control contenedor). En el siguiente ejemplo se muestra una declaración que presenta el campo que contiene el primer nombre de un control Label.

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

SeparatorTemplate

Elementos que se van a representar entre cada fila, normalmente etiquetas de saltos de línea (<br>), etiquetas de líneas horizontales (<hr>), etc.

c012haty.alert_note(es-es,VS.90).gifNota:
Los elementos de SeparatorTemplate no se pueden enlazar a datos.

El control Repeater no tiene compatibilidad integrada para seleccionar o editar. Se puede crear un controlador para el evento ItemCommand del control con el fin de procesar los eventos del control que se envían desde las plantillas al control.

El control enlaza sus plantillas Item y AlternatingItem a una estructura de datos a la que se hace referencia en la propiedad DataSource o DataSourceID del control. (Las plantillas Header, Footer y Separator no se pueden enlazar a datos.) Si se ha establecido el valor de la propiedad DataSource del control Repeater pero no se devuelve ningún dato, el control representará las plantillas Header y Footer, pero no representará ningún elemento. Si no se ha establecido el valor de la propiedad DataSource, no se representará el control Repeater.

c012haty.alert_caution(es-es,VS.90).gifPrecaución:

El texto no contiene código HTML antes de mostrarse en el control Repeater. Esto permite incrustar un script en las etiquetas HTML del texto. Si los valores del control provienen de la entrada del usuario, asegúrese de validar los valores para ayudar a evitar puntos vulnerables en la seguridad.

Para obtener más información sobre los eventos y propiedades del control de servidor Web Repeater, consulte la documentación referente a la clase Repeater.

Ejemplo

En el ejemplo de código siguiente se muestra cómo utilizar la propiedad DataSourceID para especificar el origen de datos de un control Repeater. El valor de la propiedad DataSourceID se establece en la propiedad ID del control SqlDataSource que se utiliza para recuperar los datos. Una vez cargada la página, el control Repeater se enlaza automáticamente al origen de datos especificado por el control SqlDataSource y se muestran los datos.

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

Vea también

Referencia

Repeater

Otros recursos

Sintaxis de los controles de servidor Web