Buscar

Últimas inserções

Salvando arquivos do SolidWorks 2010 para versões anteriores(2009, 2008, etc.)
Extraindo a hora de uma data
Embaralhando textos no .NET
Como adicionar THEAD e TBODY ao seu GridView
WebService faz seu processamento , mas retorna string nula.
- TODAS AS DICAS

Top Poggers (sempre)

Cuban Pete (124)
Jar Jar Binks (105)
Tufo (25)

Top Poggers (30 dias)

Jar Jar Binks (7)
Cuban Pete (1)

Área restrita

Logon

pogMasters.NET

Início
Busca Avançada
Contato

RSS
 

Paginando Datalists ou Repeaters

ASP.NET

19/08/2007 por Cuban Pete


Uma grande dificuldade pra quem vem do ASP é achar o RecordSet no asp.net pra poder já setar as propriedades de paginação quando esta é requerida em um projeto.

Fato é alguns controles já tem paginação encapsulada, entre eles o GridView e o FormView. No caso do GridView, o mesmo é um controle fantástico e por essa razão é um menos performático que o DataList ou um Repeater.

Para podermos paginar dados nestes controles temos algumas alternativas e uma delas eu demonstrarei nessa dica, é o uso do objeto PagedDataSource.

O PagedDataSource tem um nome bem sugestivo, você pode associar ele à uma fonte de dados e depois vincular seu controle (um datalist, repeater, dropdownlist, etc) à ele. É bem simples.

Abaixou vou postar um exemplo de implementação do PagedDataSource num ObjectDataSource. Este é só um exemplo, se vc quiser tb pode vinculá-lo com SqlDataSources, AccessDataSources, DataSets e assim por diante.

[C#]
namespace pogMasters
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GetData();
}

private void GetData()
{
PagedDataSource pgds = new PagedDataSource();
pgds.AllowPaging = true; //Seta paginação no PagedDataSource
pgds.DataSource = ObjectDataSource1.Select(); // No caso, está setando como datasource o método select do ObjectDataSource mas pode ser por exemplo, um DataSet.
pgds.PageSize = 3; //Número de registros por página

pgds.CurrentPageIndex = PaginaAtual; //Seta a página atual

DataList1.DataSource = pgds; //Setando o objeto como data source do DataList
DataList1.DataBind();
}


public int PaginaAtual //Propriedade da página atual, colocada no viewstate
{
get
{
object o = this.ViewState["PaginaAtual"];
if (o == null || (int)o < 0)
return 0;
else
return (int)o;
}

set
{
this.ViewState["PaginaAtual"] = value;
}
}

// Código do botao ANTERIOR
protected void btnPrev_Click(object sender, EventArgs e)
{
PaginaAtual--;
GetData();
}

// Código do botao PROXIMO
protected void btnNext_Click(object sender, EventArgs e)
{
PaginaAtual++;
GetData();
}
}
}

Pronto, sem dor de cabeça conseguimos paginar nossos resultados facilmente. Navegando pelas propriedades do PagedDataSource voces ainda poderão ver propriedades interessantes como isFirstPage (é primeira página) e isLastPage p/ implementar por exemplo, a visibilidade ou não dos botões de ANTERIOR e PRÓXIMO.

Até++
 
   


Comentários sobre o artigo

16/04/2008 por NeTo

> Usei esse código agorinha.. mto bom.. PogMasters.net eh d++

07/08/2008 por Fernando

> E eu usei hoje denovo... Quase 1 ano depois.

15/09/2008 por ClayTon

> Minha vez...

16/09/2008 por Paulo César

> Cara,

Eu usei uma DLL para fazer a paginação de um datalist. Agora sém dúvidas esta tua dica é show de bola. Já adicionei entre meus favoritos. abraço

15/01/2009 por jorge

> e ai pessoal esta procurando esse codigo a mais de uma semana e so aq encontrei essa maravilha de codigo...

dei uma implementada usando o sql data source...

vou colocar aq pra galera ve..

pgds.DataSource = SqlDataSource1.Select(DataSourceSelectArguments.Empty);

18/01/2009 por Cuban Pete

> Poxa legal Jorge, tai um outro bom jeito de usar o pageddatasource! =)

02/03/2009 por Maressa Oliveira

> Otimooo Artigo!!!

Me ajudou muito!

01/06/2009 por Danilo

> Valeu Rapa, boa!

22/10/2009 por Fagundes

> Vlw , precisava disso e achei por aqui !!!
rsrs

04/01/2010 por Arnaldo

> eu uso sqlDataSource e da o seguinta erro: The name 'DataList1' does not exist in the current context
da 2 erros desses.
alguem poderia me ajuda??
nao entendo muito de asp.net, pois estou começando agora, e só falta esse problema para resolver para entregar o site para o cliente.
por favor, me ajudem, URGENTEE...
Obrigado

29/07/2010 por Evilasio

> poxa man isso salvou minha vida :D vlw

Poste um comentário >>
Nome  
Email
Comentário    
Postar Comentário