none
Paginação RRS feed

  • Pergunta

  • Galera estou tentando fazer uma paginação na mão, mas não estou sabendo fazer o numero de paginas que devo ter, alguem poderia me ajudar? Segue como estou fazendo :

     model.NumeroPaginas = model.Venda.Count() / limitePagina;

    Obrigado


    SirSmart

    quarta-feira, 21 de maio de 2014 17:26

Respostas

  • float totalPaginas = model.Venda.Count() / limitePagina;
    if ((model.Venda.Count() % limitePagina) > 0)
    {
    	model.NumeroPaginas = Convert.ToInt32(totalPaginas + 1);
    }



    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.


    • Editado Diego Murakami quarta-feira, 21 de maio de 2014 19:51
    • Marcado como Resposta SirSmart quarta-feira, 21 de maio de 2014 20:01
    quarta-feira, 21 de maio de 2014 19:50

Todas as Respostas

  • Boa tarde amigo, 

    Você precisa fazer um count com todos os registros que batam com o filtro que você quer. 

    Segue um exemplo:

    Contexto.Entidade.Count(t => t.Id > 10) //  Faz count de todos os registros que tiverem Id > 10. 
    
    

    Outro exemplo: 

    Contexto.Vendas.Where(v => v.Id > 1).Count(); 

    Abraços

    quarta-feira, 21 de maio de 2014 17:39
  • Na verdade o 

    model.Venda.Count() 

    já tem todos registros que tenho. Só que como estou montando a grid na mão, preciso saber quantas paginas precisa ser exibida, exemplo: 1 2 3 4 5 

    Só que não sei fazer esse calculo para aparecer esses numeros que acessarão as paginas.... Desculpa mas não sei se expliquei direito...


    SirSmart

    quarta-feira, 21 de maio de 2014 17:44
  • Entendi,

    O Cálculo é bem simples:

    Você tem a quantidade de páginas que serão exibidas na tela, certo? Você divide a quantidade total de registro no banco pela quantidade de páginas.

    Ex: 200 registros / 10 registros por página = 20 páginas 

    Ai você faz um foreach na quantidade, pra exibir 1 por 1 (ex: 1,2,3,4,5,6,7,8,...) Fica por sua preferência...
    quarta-feira, 21 de maio de 2014 18:41
  • Cara seguinte :

    Tenho 12 registros e por pagina tenho 5 registros. Se eu dividir 12 / 5 me retorna 2,4 que será 2. Na minha pagina daria 2 paginas, mas faltou 2 registros que ficaram escondidos.... Como resolvo isso ?

    Obrigado


    SirSmart

    quarta-feira, 21 de maio de 2014 19:00
  • É só você fazer um teste de quantos sobram usando MOD;

    var mod = 12 % 5;

    logo, mod será a quantidade restante...se for 0 significa que não precisa adicionar mais páginas, se for maior que 0, adicione uma a mais.

    ;)

    Abraços !


    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.

    quarta-feira, 21 de maio de 2014 19:21
  • Cara seguinte :

    Tenho 12 registros e por pagina tenho 5 registros. Se eu dividir 12 / 5 me retorna 2,4 que será 2. Na minha pagina daria 2 paginas, mas faltou 2 registros que ficaram escondidos.... Como resolvo isso ?

    Obrigado


    SirSmart

    Pode fazer dessa maneira: 
     int totalPaginas  = totalRegistros / registrosPorPagina;
     
     if (totalPaginas % 2 > 0 ) // Se o resto for maior que zero significa que não é um inteiro 
     { 
     totalPaginas + 1; 
     } 

    quarta-feira, 21 de maio de 2014 19:33
  • Cara desculpa estar postando de novo  mas não sei o que está acontecendo. Meu total é 12 e minha quantidade por pagina é 5. Fazendo essa divisão daria 2.4 , mas está me retornando 2.0. O que estou fazendo de errado, segue o código:

                float totalPaginas = model.Venda.Count() / limitePagina;
    
                if (totalPaginas % 2 > 0) // Se o resto for maior que zero significa que não é um inteiro 
                {
                    model.NumeroPaginas = Convert.ToInt32(totalPaginas + 1);
                } 


    Obrigado

    SirSmart

    quarta-feira, 21 de maio de 2014 19:44
  • float totalPaginas = model.Venda.Count() / limitePagina;
    if ((model.Venda.Count() % limitePagina) > 0)
    {
    	model.NumeroPaginas = Convert.ToInt32(totalPaginas + 1);
    }



    Diego Murakami View Diego Murakami's LinkedIn profile - MCP, MS
    * Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.


    • Editado Diego Murakami quarta-feira, 21 de maio de 2014 19:51
    • Marcado como Resposta SirSmart quarta-feira, 21 de maio de 2014 20:01
    quarta-feira, 21 de maio de 2014 19:50