我想在几个页面上显示查询结果,因此我使用标签分页。 我在所有页面中都有正确的输出(我想要每页5个结果),但是第一个。 在第一页中,显示所有结果。
控制器:
def questions(){
def questions = Question.list(params)
[questions: questions, total: Question.count()?:0, tags: Tags.list(), params: params]
}
查看
<g:each in="${questions}" var="question">
<div class="row">
${question?.body }
</div>
</g:each>
<div class=pagination>
<g:paginate controller="Question" action="list" total="${total}" max="5" params="${params}"/>
</div>
为什么我在第一页中有所有结果?
答案 0 :(得分:0)
这是因为params
没有max
值。
设置params.max = 10
然后调用questions()
会导致第一页有10个项目。
// will result in Question.list(max: 10)
def questions = Question.list(params)
但是,请确保后续页面再次调用相同的操作,然后params.max
必须设置为5或完全删除,因为来自max
的{{1}}会处理其余部分。
答案 1 :(得分:0)
您可以在控制器操作的开头添加以下行:
params.max = params.max ?: 5
如果没有给出max
参数,则默认值为5。