Paginação não funciona
12/12/2012 15:55
0
Ola,

Estou com um problema de paginação. Faço uma busca dinamica e o resultado sempre esta vindo com 10 registros na GSP e não ativa minha paginação. Fiz vários testes e vi que meu metodo de busca esta retornando apenas os 10 registros porém não consigo fazer o dinamismo dos valores max e offset. Alguem poderia me ajudar?

Minha action esta assim:

def list(Integer max) {

params.max = Math.min(max ?: 10, 100)
def funcionarios = Usuario.findAllByFuncionario(true,params)
def total = funcionarios.size()

[usuarioInstance: funcionarios , usuarioInstanceTotal: total]
}


Este retorna 10 funcionários e não pagina, mas se eu retirar o params.max ele retorna mais de 1000.

Minha GSP esta normal:

<div class="pagination">
<g:paginate total="${usuarioInstanceTotal}" />
</div>


Alguém saberia me ajudar?

Obrigado pela atenção!
Tags: paginação


0
Também tentei chamar o offset diretamente no link ( usuario/list?offset=0&max=10 ) porém não libera o menu de navegação, apenas os 10 resultados
12/12/2012 15:59


0
No sue controlador, da um print em params... e veja o que está sendo passado pra ele. Posta aqui pra podermos ajudar vc.

[]'s
12/12/2012 16:19


0
Meu 'params' esta zerado!

Após ele passar pelo

daí ele recebe 'params.max = Math.min(max ?: 10, 100)' e fica com 'params.max = 10'
12/12/2012 17:09


0
Cara, remove aquele parametro que vc ta passando ali na sua action list.

Em sua gsp, coloque algo assim:


<g:paginate action="list" total="${usuarioInstanceTotal}" />


Veja se resolve.


[]'s
12/12/2012 17:56


0
Outra coisa... mude a forma que você verifica o max:

params.max = Math.min(params.max ? params.int('max') : 10, 100)
12/12/2012 18:31


0
Luciano,

fiz exatamento o que me pediu para fazer, foi apresentado 10 resultados porém a barra de navegação não foi liberada e não dá para navegar entre os resultados.
13/12/2012 12:02


0
Fala Rodrigo... tem mais um detalhe.
O seu usuarioInstanceTotal sempre retornava o mesmo valor, e não o total... ou seja, sempre tinha 10 registros.


def list() {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
[usuarioInstance: Usuario.findAllByFuncionario(params) , usuarioInstanceTotal: Usuario.count()]
}



<div class="pagination">
<g:paginate action="list" total="${usuarioInstanceTotal}" />
</div>


Agora vai!


[]'s
13/12/2012 12:26


0
Opa... viajei, você ta fazendo um findAll, e não um list....

Corrigindo:


def list() {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
def tamanho = Usuario.findAllByFuncionario(true, params).size()
[usuarioInstance: Usuario.findAllByFuncionario(true, params) , usuarioInstanceTotal: tamanho]
}


Mas era aquilo mesmo, seu size sempre pegava 10.
13/12/2012 12:30


0
Pooo... ta dificil hj... kkkk desculpa, remove o "params" do def tamanho.
13/12/2012 12:31


0
Ola Luciano,


Usuario.findAllByFuncionario(true, params) -> esta retornando apenas 10 resultados
def tamanho = Usuario.findAllByFuncionario(true, params).size() -> esta recebendo 10

E a barra de navegação ainda não esta aparecendo.
13/12/2012 14:20


0
def list() {
params.max = Math.min(params.max ? params.int('max') : 10, 100)
def tamanho = Usuario.findAllByFuncionario(true).size()
[usuarioInstance: Usuario.findAllByFuncionario(true, params) , usuarioInstanceTotal: tamanho]
}
13/12/2012 16:33


0
Fiz exatamente isso e a barra de navegação não aparece. Apenas os 10 resultados.

13/12/2012 21:05



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto