1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

grid view manual

Discussão em 'Programação' iniciada por alfinete, 27 de Dezembro de 2007. (Respostas: 4; Visualizações: 1478)

  1. alfinete

    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
     
  2. mOrSa

    mOrSa Power Member

    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
     
  3. alfinete

    alfinete Power Member

    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
     
  4. slack_guy

    slack_guy Power Member

    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.
     
  5. mOrSa

    mOrSa Power Member

    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..
     

Partilhar esta Página