在grails

时间:2015-07-01 07:49:19

标签: grails pagination

我的所有数据都在模板中呈现。我想在我的页面上添加分页。 这里如果我的控制器代码

def addset={
    def set=QuestionSet.findAllByUserId(session.user)
    params.max = Math.min(params.int('max') ?: 5, 100)
    def totalset=QuestionSet.countByUserId(session.user)
    def totalsetlist = QuestionSet.list(fetch: [userId: session.user])
    respond totalsetlist , model:[totalsetCount: totalset,set:set]  
}

这是我的观点

<div class="tbody">
<div id="form">
    <g:render template="form" />
</div>
</div>
<div class="pagination">
                <g:paginate total="${totalsetCount?: 0}" />
 </div>

此处呈现到模板中的数据是表单模板

<g:each in="${set}">
    <g:formRemote name="editfrom" update="form"
        url="[controller: 'questions', action:'editset']">

        <g:hiddenField name="setid" value="${it.id}" />

        <div class="tr">
            <div class="td">
                <g:textField id="text${it.id}" class="text" name="setname"
                    required="" disabled value="${it.name}" />
            </div>

            <div class="td">
                ${it.totalquestion}
            </div>

            <div class="td">
                <label class="label label-info"> ${it.name}
                </label>
            </div>

            <div class="td">
                <label id="edit${it.id}" class="edit">Edit</label>
                <g:submitButton id="save${it.id}" class="save" name="save" />
            </div>
            <div class="td">
                <label class="label label-danger">Delete</label>
            </div>
        </div>
    </g:formRemote>
</g:each>

分页div显示但是分页不起作用。我不知道如何解决这个问题。我没有找到任何好的例子。任何人都可以帮助我解决这个问题。 Thanx

1 个答案:

答案 0 :(得分:1)

您需要检查参数偏移量,并且需要像这样更新您的查询:

def totalsetlist = QuestionSet.createCriteria().list{
   order("${params.order ?: 'id'}"
   maxResults(params.max)
   firstResult(params.offset ?: 0)
 }

我没有使用fetch,但我认为你可以通过自己来实现