【问题标题】:Pagination in GrailsGrails 中的分页
【发布时间】:2012-07-16 15:08:38
【问题描述】:

我想在我的 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 个,但是当我单击“下一步”打开其他 2 个对象时,我看到了相同的 3 个。出了什么问题,我必须做什么?

【问题讨论】:

    标签: grails pagination


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你,它正在工作。但是我可以在 g:paginate 标签中使用一些 css 样式吗?
    • @Jack:是的,查看源代码以检查 grails 在 html 上放置的类,并将这些类用于您的选择器。 (或者破解 main.css)
    【解决方案2】:

    1) 如果您使用的是标准查询,那么:

     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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2015-02-21
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多