Compartilhar via


Visão geral controle de servidor da Web Repeater

The Repeater Web server control is a data-bound container control that produces a list of individual items.Você define o layout de itens individuais em uma página da Web usando modelos.Quando a página é executada, o controle repete o layout para cada item de uma fonte de dados.

Esse tópico contém:

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

Segundo plano

O controle de servidor Web Repeater é um controle recipiente que permite que você crie listas personalizadas a partir de quaisquer dados que estão disponíveis para a página.O controle Repeater não tem uma reprodução interna própria, o que significa que você deve fornecer o layout para o controle Repeater criando modelos.Quando a página é executada, o controle Repeater circula os registros na fonte de dados e processa um item para cada registro.

Como o controle Repeater não tem aparência padrão, você pode usá-lo para criar vários tipos de listas, incluindo o seguinte:

  • Um layout da tabela

  • Uma lista delimitada por vírgulas-(por exemplo, a, b, c, d, e assim por diante)

  • Uma lista formatada em XML

Usando modelos com o controle Repeater

Para usar o controle Repeater, você cria modelos que definem o layout do conteúdo do controle.Modelos pode conter qualquer combinação de marcação e controles.Se nenhum modelo é definido, ou se nenhum dos modelos contiverem elementos, o controle não aparece na página quando o aplicativo é executado.

A tabela a seguir descreve os modelos que são suportados pelo controle Repeater.

Propriedade do modelo

Descrição

ItemTemplate

Contém os elementos HTML e controles para processar uma vez para cada item de dados em uma fonte de dados.

AlternatingItemTemplate

Contém os elementos HTML e controles para processar uma vez para cada outro item de dados em uma fonte de dados.Normalmente, esse modelo é usado para criar uma aparência diferente para os itens alternados, como uma cor do plano de fundo diferente do que a cor que é especificada na propriedade ItemTemplate.

HeaderTemplate e FooterTemplate

Contém o texto e controles para processar no início e fim da lista, respectivamente.

SeparatorTemplate

Contém os elementos para processar entre cada item.Um exemplo típico pode ser uma linha (usando um elemento hr).

Para obter mais informações, consulte Modelos de controles servidores web ASP.NET.

Vinculando dados ao controle Repeater

O controle Repeater deve ser vinculado a uma fonte de dados.A fonte de dados mais comum é um controle de fonte de dados, como um controle SqlDataSource ou ObjectDataSource.Como alternativa, você pode acoplar um controle Repeater para qualquer classe que implementa a interface IEnumerable, que inclui o ADO.NET DataSets (a classe DataSet), leitores de dados (as classes SqlDataReader ou OleDbDataReader), ou a maioria das coleções.

Ao vincular dados, você especifica um fonte de dados para o controle Repeater como um todo.Quando você adiciona controles ao controle Repeater — por exemplo, quando você adiciona controles Label ou TextBox em um modelo — você usa a sintaxe de ligação de dados para vincular o controle individual a um campo dos itens retornados pela fonte de dados.O exemplo a seguir mostra um ItemTemplate que contém um controle Label ligado a dados.

<%@ 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 id="Head1" >
  <title>ASP.NET Repeater Example</title>
</head>
<body>
  <form id="form1" >
    <div>
      <asp:Repeater ID="Repeater1"  DataSourceID="SqlDataSource1">
        <HeaderTemplate>
          <table>
            <tr>
              <th>
                Name</th>
              <th>
                Description</th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label1" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label2" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </ItemTemplate>
        <AlternatingItemTemplate>
          <tr>
            <td>
              <asp:Label  ID="Label3" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td>
              <asp:Label  ID="Label4" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>
      <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        ID="SqlDataSource1"  SelectCommand="SELECT [CategoryID], [CategoryName], 
            [Description] FROM [Categories]"></asp:SqlDataSource>
    </div>
  </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 id="Head1" >
  <title>ASP.NET Repeater Example</title>
</head>
<body>
  <form id="form1" >
    <div>
      <asp:Repeater ID="Repeater1"  DataSourceID="SqlDataSource1">
        <HeaderTemplate>
          <table>
            <tr>
              <th>
                Name</th>
              <th>
                Description</th>
            </tr>
        </HeaderTemplate>
        <ItemTemplate>
          <tr>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label1" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td style="background-color:#CCFFCC">
              <asp:Label  ID="Label2" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </ItemTemplate>
        <AlternatingItemTemplate>
          <tr>
            <td>
              <asp:Label  ID="Label3" Text='<%# Eval("CategoryName") %>' />
            </td>
            <td>
              <asp:Label  ID="Label4" Text='<%# Eval("Description") %>' />
            </td>
          </tr>
        </AlternatingItemTemplate>
        <FooterTemplate>
          </table>
        </FooterTemplate>
      </asp:Repeater>
      <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        ID="SqlDataSource1"  SelectCommand="SELECT [CategoryID], [CategoryName], 
              [Description] FROM [Categories]"></asp:SqlDataSource>
    </div>
  </form>
</body>
</html>
Observação:

Você não pode vincular controles no cabeçalho, rodapé e modelos separadores usando a função Eval de vinculação de dados.Simplesmente se você tiver controles nesses modelos, você pode definir suas propriedades estaticamente.

Para obter uma visão geral de associação de dados de controles de servidor Web, consulte Explicação passo a passo: Acesso básico a dados em páginas da Web e Como: Adicionar controles de servidor Web Repeater a uma página de Web Forms.

Eventos com suporte pelo controle Repeater

O controle Repeater suporta vários eventos.Um deles, o evento ItemCreated, oferece uma maneira para personalizar o processo de criação item no tempo de execução.O evento ItemDataBound também lhe permite personalizar o controle Repeater, mas após os dados estarem disponíveis para a inspeção.Por exemplo, se você estiver usando o controle Repeater para exibir uma lista de tarefas, você pode exibir itens atrasados em texto vermelho, itens concluídos em texto preto e outras tarefas em texto verde.O evento pode ser usado para substituir formatação da definição do modelo.

O evento ItemCommand é gerado em resposta a cliques de botão em um item individual.Este evento é desenvolvido para lhe permitir incorporar um controle de servidor Web Button, LinkButton ou ImageButton em um modelo de item e, em seguida, ser notificado quando o botão for clicado.Quando um usuário clica no botão, o evento é enviado ao recipiente do botão — o controle Repeater.Os usos mais comuns para o evento ItemCommand são programar atualização e excluir comportamentos para o controle Repeater.Já que que cada clique de botão gera o mesmo evento ItemCommand, você pode determinar qual botão foi clicado, definindo a propriedade CommandName de cada botão para um valor da sequência de caracteres exclusivo.A propriedade CommandSource do parâmetro RepeaterCommandEventArgs contém a propriedade CommandName do botão que foi clicado.

Para obter mais informações, consulte Como: Responder a eventos de botão em DataList ou Repeater itens.

Voltar ao topo

Exemplos de código

Como: Adicionar controles de servidor Web Repeater a uma página de Web Forms

Voltar ao topo

Referência de Classe

A tabela seguinte lista as classes chave que estão relacionados ao controle Repeater.

Membro

Descrição

Repeater

A classe principal para o controle.

Voltar ao topo

Consulte também

Referência

Visão geral do controle DataList do servidor Web