Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de fazer uma pergunta para o pessoal mais experiente em .net.
Se eu der um SELECT * FROM TABELA na minha procedure, e tiver uns 60 mil registros, e jogar num gridview com a paginação do .net usando:
AllowPaging="True"
onpageindexchanging="gridPageIndexChanging"
protected void gridPageIndexChanging(object sender, GridViewPageEventArgs e)
{
grid.PageIndex = e.NewPageIndex;
grid.DataBind();
}
Será que vou perder muita performance e ter problemas de tráfego, é melhor usar aquelas técnicas de paginação no sql e criar um componente para paginar?
legal o link, bom que usa o esquema de camadas que estou trabalhando atualmente e não vou ter que criar um componente de paginação para gridview que acho que estaria reiventando a roda se criasse um. depois vou testar e tentar adaptar ao meu contexto, valeu pela dica.
>
legal o link, bom que usa o esquema de camadas que estou trabalhando atualmente e não vou ter que criar um componente de paginação para gridview que acho que estaria reiventando a roda se criasse um. depois vou testar e tentar adaptar ao meu contexto, valeu pela dica.
czt tb. uso em camadas sem problemas, se tiver utilizando em namespaces diferentes basta informar na propriedade TypeName do ObjectDataSouce , ex.: TypeName="RH.Funcionarios.clsGeral"
outra dica se utilizar session como parâmetro, pode usar o evento Load do ObjectDataSouce para verificar se a session ainda esta carrega e fazer o tratamento caso não estiver
e no evento Selected podemos pegar o total de registros:
protected void odsOperacoes_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.ReturnValue != null && e.ReturnValue.GetType().Name.Equals("Int32"))
{
int iTest = 0;
int.TryParse(e.ReturnValue.ToString(), out iTest);
lblRowsAffected.Text = String.Format("({0} linha(s) encontrada(s))", iTest.ToString());
}
}
esse aqui mostra com a opção de ordenação e compara o método convencional trazendo todos os registro com esse trazendo somente os registros que serão visualizados: http://www.codeproject.com/KB/aspnet/Optimized_Paging_And_Sort.aspx
o único problema que encontrei foi caso adicionar mais parâmetros no método principal (SelectMethod), tem que adiciona-los tb. ao método de contagem (SelectCountMethod), mesmo que não for utiliza-los no SelectCountMethod
se fizer dessa forma vai ficar carroça, pois vai trazer os 60.000 registros do banco de dados e depois fazer a paginação local, ainda mais SELECT *.
para paginação utilizo as técnicas do sql server ou oracle e utilizo o ObjectDataSource com o gridview, funciona legal e podes passar vários objetos como parâmetro: querystring(s), session(s) e controle(s) da página
exemplo:
http://www.israelaece.com/post/Explorando-o-GridView-Paginacao-de-Dados.aspx