Asp:Repeater e Web Standards
O Asp:Repeater é um controle Asp.net que permite ao desenvolvedor criar trechos de código html com total controle e o melhor, sem tabelas a não ser que sejam necesárias.
No Asp:Repeater é possível utilizar qualquer tipo de DataSource como por exemplo: Um List<> ou um Asp:ObjectDataSource. Abaixo seguem alguns exemplos:
Asp:Repeater utilizando um List<> como DataSource
Em sua página:
<asp:Repeater ID="ClientesDeList" runat="server"> <HeaderTemplate> <ul> </HeaderTemplate> <ItemTemplate> <li> <p>Nome : <%# DataBinder.Eval(Container.DataItem, "Nome" )%></p> <p>Cidade : <%# DataBinder.Eval(Container.DataItem, "Cidade" )%></p> <p>Ultima Compra : <%# DataBinder.Eval(Container.DataItem, "UltimaCompra" )%></p> </li> </ItemTemplate> <FooterTemplate> </ul> </FooterTemplate> </asp:Repeater>
Neste exemplo foi utilizado o elemento unsorted list
<ul> mas poderia ser utilizado qualquer elemento html.
No código (code behind):
ClientesDeList.DataSource = Cliente.CriarClientes(); ClientesDeList.DataBind();
Sua classe:
public class Cliente{
public string Nome { get; set; }
public string Cidade { get; set; }
public string UltimaCompra { get; set; }
public Cliente()
{
}
public static List<cliente> CriarClientes()
{
return new List<cliente>(){
new Cliente()
{
Nome = "Cliente 1",
Cidade = "São Paulo",
UltimaCompra = "Livro Asp.net"
},
new Cliente()
{
Nome = "Cliente 2",
Cidade = "Jundiaí",
UltimaCompra = "Livro SQL Server"
},
new Cliente()
{
Nome = "Cliente 3",
Cidade = "Rio de Janeiro",
UltimaCompra = "CD Visual Studio"
},
new Cliente()
{
Nome = "Cliente 4",
Cidade = "Brasília",
UltimaCompra = "Meu Voto"
},
};
}
}
Asp:Repeater utilizando um Asp:ObjectDataSource como DataSource
Na página:
<p>Lista de clientes</p>
<asp:Repeater ID="ClientesDeObjectDataSource" runat="server" DataSourceID="FonteDeClientes"> <HeaderTemplate> <ul> </HeaderTemplate> <ItemTemplate> <li> <p>Nome : <%# DataBinder.Eval(Container.DataItem, "Nome" )%></p> <p>Cidade : <%# DataBinder.Eval(Container.DataItem, "Cidade" )%></p> <p>Ultima Compra : <%# DataBinder.Eval(Container.DataItem, "UltimaCompra" )%></p> </li> </ItemTemplate> <FooterTemplate> </ul> </FooterTemplate> </asp:Repeater> <asp:ObjectDataSource ID="FonteDeClientes" runat="server" SelectMethod="CriarClientes" TypeName="Cliente"></asp:ObjectDataSource>
No código e na classe a implementação é a mesma.
Como pudemos ver, o Asp:Repeater é um controle poderoso que permite uma reprodução de um trecho de código html com total liberdade de criação.
Até mesmo uma tabela semântica pode ser criada utilizando este controle, com recursos que não existem, por exemplo, no Asp:DataGrid.
Baixar o Código