grid view manual

alfinete

Power Member
tenho em vb.net uma grid feita a la pata, gostava de saber uma coisa.

em c# asp.net

como posso controlar a pesquiza de forma q que essa grid so mostre 8 a 8 rows de cada vez.


agradecia
 
Se estás a fazer uma pesquisa suponho que seja através de um motor de base de dados. Dessa forma, se eventualmente queres filtrar isso basta que obtenhas 8 resultados de cada vez. Se estás a fazer isso em C# suponho que uses MS SQL Server. Para isso basta que a tua query seja algo do estilo:
Código:
 Select TOP 8 campo1, campo2 From Tabela
Depois basta colocares os dados na grid, isto é, colocares os dados que obtiveste na query anterior e fazer com que o Grid.DataSource = dados

Mais ainda, não sei o que consideras uma grid feita "à la pata" e se o interesse é mostrar, também, as próximas 8 linhas a coisa já complica mais um bocado. E complica pela razão que o MS SQL da MS não tem (que eu saiba) o tradicional " LIMIT " como os outros SGBDS.
Sei que há hipótese mas a última vez que alguém me perguntou como fazia isso a query que encontrei a funcionar era um camião! :mad:
Mas pode-se procurar :)

Espero ter ajudado!
1abraço
 
não é nada em sql

tem de ser com o c# do tipo :

contar o numr de limhas da dt
caso seja ate 8 mostra-as tdas caso contrario mostra 8 a oito linhas
 
A sugestão do 'mOrSa' parece-me válida. Porque é que vais buscar todos os dados à BD se só vais mostrar 8 de cada vez? Parece-me natural que só vás buscar os dados que precisas. A menos que não estejas a usar base de dados, mas mesmo assim, os dados devem vir de algum lugar; e só devem vir os que são precisos.
 
Isso resolve-se de uma maneira simples: crias uma nova datatable, dt2, por exemplo, e a cada iteração fazes o dt2.clear(); e depois preenches... mais ou menos isto...

Código:
private int num_linhas_iteracao = 7;
private datatable dt1, dt2 = new datatable();

private Load... () {
    // ... colocar isto no Load... 
   private int iteracoes = 0;
    // ...
}

private function putDataDG()
{
// limpar a dt
dt2.clear();
// ciclo para copiar os dados de uma dt para a outra
for (i = 0; i<= num_linhas_iteracao; i++)
    {
        dt2.Rows(i + iteracoes * num_linhas_iteracao) = dt1.Rows(i + iteracoes * num_linhas_iteracao)
    }

iteracoes++;
}
Espero ter ajudado.
1abraço!

PS - como disse o slack é má politica teres os dados todos do lado do cliente no imediato por várias razões: disponibilidade, velocidade de obtenção, excesso de carga na rede, dados erróneos... etc etc..
 
Back
Topo