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 |
---|---|
Contém os elementos HTML e controles para processar uma vez para cada item de dados em uma fonte de dados. |
|
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. |
|
Contém o texto e controles para processar no início e fim da lista, respectivamente. |
|
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 |
---|---|
A classe principal para o controle. |
Voltar ao topo