Amigos

To precisando de ajuda

Tenho um gridview que tem 1000 páginas, este grid tem uma unica coluna que é um template dentro deste template tenho um um label que mostrar o código do registro

preciso procurar no meu gridview em qual página esta o código 100 por exemplo

e posicionar meu gridview.pageindex para mostrar para meu usuário

Exibições: 133

Respostas a este tópico

Lucas, só para excluir possibilidades ok?

Se vc quer o registro 100 e vc tem 1000 páginas. Se vc está paginando a 50 registros por página, nao seria só setar para página 2?

Obrigado amigo.

A questão é eu mostro apenas um registro por pagina e na paginaca tenho o Primeiro - anterior - proximo e ultimo por isso que preciso percorrer o grid em todas as 1000 paginas para saber qual pagina esta o registro do codigo 100 para posicionar nela

Legal, deixe eu perguntar mais coisas para eu entender tudo ok?

Vc faz um select no banco que traz 1mil registros, vc só exibe um por vez e pagina o resto.

É isso mesmo?

sim é isso mesmo

Ok, não seria melhor vc fazer uma consulta retornando apenas 1 registro, e neste vir uma coluna a mais vindo a quantidade total de registros? Exemplo:

Select Tabela.*, count(*) total From Tabela Where Tabela.Id = XX

Vc usa qual bando de dados?

Tiagão, trabalho com firebird, mas fiz isso aqui

pego no banco 500 registro e passo para meu grid ai procuro onde esta o registro x em qual page index do grid ai posiciono na página

Session["IDMANFIESTO"] = GridView4.Rows[GridView4.SelectedIndex].Cells[1].Text.ToString();
lblInfromacaoConsulta.Text = Session["IDMANFIESTO"].ToString();
int paginas = GridView16.PageCount;
for (int X = 0; X < paginas; X++)
{
GridView16.PageIndex = X;
GridView16.DataBind();
//Label IDManifesto = (Label)FindControlRecursive(form1, "lblCodManifesto");
//lblInfromacaoConsulta.Text = lblInfromacaoConsulta.Text + "----" + IDManifesto.Text;
if (GridView16.Rows[0].Cells[0].Text == lblInfromacaoConsulta.Text)
{
GridView16.PageIndex = X;
break;
}

}
MultiView1.ActiveViewIndex = 7;

Tiago muito obrigado amigo valeu mesmo

Lucas,

Te oriento a revisar o código, pois tem ações que está tomando (consequentemente recursos) que são desnecessários. Veja:

1. Vc seleciona registro que não irá exibir na tela;

2. Armeza em Session dados que interessam apenas a uma página, persistindo dados na memório do servidor de aplicação sem necessidade;

3. A busca de informação está sendo feita dentro do grid, e não dentro do banco (este, no caso, feito exatamente para buscar dados, e o grid apenas para exibir);

Mas, a boa notícia é que tem como melhorar! :)

1. No momento que for fazer o SELECT, já passe a InformacaoConsulta nele, e traga apenas o que será exibido na tela;

2. Crie métodos para tratar os eventos de Pagging do GridView, para cada paginação, refaça o SELECT com o novo índice;

3. Armezene a informação de IdManifesto no DataKey do GridView, e não em uma session. Assim essa informação só é armazenada enquanto o GridView exisitir. Após a memória é liberada.

No final vc verá que a aplicação ficará mais rápida e mais leve para o browser e para o banco!

Ok, vou revisar sim

Obrigado amigo

Apareceu alguma solução para o problema?

RSS

© 2017   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço