2015-07-20 84 views
0

我想知道你如何设置最大分页结果,我的代码下面继续设置最大结果为默认值10.我想25.任何想法?grails分页最大结果

def list(Integer max) { 

    def recoverySetupList = RecoverySetup.createCriteria().list { 
      'in'("division", userService.getDivisions()) 
      maxResults(Math.min(max ? : 25, 100)) 
      firstResult(params.offset ? params.int('offset') : 0) 

      if(params.sort && params.order) { 
       if(params.sort != 'peNameU') { 
        order params.sort, params.order 
       } else { 
        oneSolName { 
         order params.sort, params.order 
        } 
       } 
      } 
     } 

    respond recoverySetupList, model:[recoverySetupInstanceCount: RecoverySetup.count()] 
} 

回答

0

您似乎正在设置它。应该工作,所以问题在别处,例如其中默认最大值是10,是max分配的任意值,那么params.max呢?

您可以尝试将max和offset传递到列表中 - .. createCriteria().list(max: max, offset: offset)并从标准主体中删除maxResultsfirstResult

0

我认为你的代码第一次工作正常(当没有提供最大值),但是当你按任何分页链接,那么它被设置为10.如果是这样,那么你必须在分页标签中设置最大值,就像

<g:paginate max="25" total="${recoverySetupInstanceCount}"/> 
0

请使用

  params.max = Math.min(params.max ? params.int('max') : 25, 100) 
      int offset = 0; 
      if(params.offset != null) { 
       offset = (Integer.valueOf(params.offset)); 
      }