Posso usar pager com desempenho paginação banco de dados?
-
08-07-2019 - |
Pergunta
Eu tenho um procedimento de armazenamento que alças de paginação a nível de banco de dados, recebendo @ PageSize e @ PageIndex . Eu posso criar um outro para retornar @ PageCount , dado um tamanho da página.
Eu posso fazer um datagrid que paginação a nível de banco de dados sem ter que desenvolvê-lo fora do controle, usando o pager controle?
Parece uso padrão de paginação datagrid recebe tudo resultado da consulta, e não paginação fora do banco de dados. Não é bom para nós, uma sobrecarga desnecessária.
Solução
Set AllowCustomPaging = "true" no aspx. E quando databinding fazer:
mygrid.VirtualItemCount = pageCount;
mygrid.DataSource = mysource;
mygrid.DataBind();
Com base no seu comentário "Eu uso conexão ADO, comando, etc, e depois de carregamento resulta em uma lista de objetos (minhas classes de entidade), faço DataGrid.DataSource = Lista";
Outras dicas
Se você usa um controle ObjectDataSource como o DataSourceID do GridView, em seguida, ele funciona muito facilmente. Os controles ObjectDataSource tem um par de parâmetros onde você pode dizer que os nomes das propriedades pageIndex e MaxRows.