Grails中的分页

时间:2012-07-16 15:08:39

标签: grails pagination

我想在grails应用程序中添加一些分页内容。我有列表操作,其中我做了这个:

if(!params.max){
params.max = 3
}
    def query = Profile.where {
        userType == "F"
    }
    def freelancers = query.list(sort:"firstName", max:params.max)
    if(freelancers) {
        def freelancersCount = query.count()
        return[freelancer:freelancers, fCount:freelancersCount]
    } else {
        response.sendError(404)
    }

在gsp中我写道:

<div id="paginate">
    <g:paginate controller="freelancers" action="list" total="${fCount}"/>
</div>

一切正常,我的数据库中有5个对象,在浏览器中打开gsp页面时只能看到3个,但是当我点击Next打开其他2个对象时,我看到相同的3个。什么是错的,我必须做什么?

2 个答案:

答案 0 :(得分:8)

您需要将偏移量传递给您对list的调用:

def freelancers = query.list(sort:"firstName", offset:params.offset, 
max:params.max)

答案 1 :(得分:1)

1)如果您正在使用Criteria查询,那么:

 params.max = Math.min(max ?: 10, 100)
 Integer offset = params.offset as Integer ?: 0
 List userInstanceList = User.createCriteria().list(max:params.max,offset:offset) {
            or {
                ilike('name', "%${name}%")
                ilike('email', "%${email}%")
            }
            order('dateCreated', 'desc')
        }

2)如果您正在使用GORM查询,那么:

 params.max = Math.min(max ?: 10, 100)
 Integer offset = params.offset as Integer ?: 0
 List<User> userList=User.list(max:params.max,offset:offset)