Использование пагината Grails - PullRequest
0 голосов
/ 13 декабря 2011

Что не так с этим кодом, потому что я получаю все результаты, возвращающиеся в представление, что занимает слишком много времени для загрузки.Я хочу, чтобы он возвращал только 5 на страницу.

Контроллер:

{

    def channel2 = Channel2.list(params)
    //def prog = Programmation.list()
    def prog
    def progs = [:]
    def temp

    channel2.each{
       Programmation p = Programmation.withCriteria {
          eq('prog_channel', it)
          'between'('prog_start', new Date(), new Date() +1)    
        }
        progs.put(it.id, p)
    }

    [channel: channel2, program: progs]

}

GSP

<g:render id="" template="/layouts/canais"/>

<g:paginate next="Forward" prev="Back"
        maxsteps="0" max="3" controller="teste"
        action="myProgramms_canais"  
        total="${tv_megazineplus.Channel2.count()}" />

Я не могу понять это.Я следовал за справкой Grails, она должна работать.

1 Ответ

0 голосов
/ 13 декабря 2011

Решение: при первом вызове этого действия загружаются все каналы, поскольку для параметра params.max установлено значение null.Чтобы это исправить, просто используйте:

def offset

        if(!params.offset){
            offset = 0
        }

        def channel2 = Channel2.list(max:5, offset: offset)
...