首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Grails分页问题中限制行数

在Grails分页问题中限制行数
EN

Stack Overflow用户
提问于 2015-09-18 05:54:20
回答 1查看 949关注 0票数 0

嗨,

如上图所示,我有行,分页不能像预期的那样正常工作。它不是每页显示10条记录(请看下面的分页代码),而是显示同一页中的所有记录,而在所有页面中显示相同的记录。

以下是代码:

代码语言:javascript
复制
<!doctype html>
<g:applyLayout name="protocolNavigator">
<meta name="layout" content="page" />
    <head>
        <script type="text/javascript" src="<g:resource dir="BI/d3" file="d3.v2.js"/>"></script>
    </head>
    <content tag="listTitle">
        <label>Data Activity</label>
    </content>
    <content tag="list">    
    <div id="div_print">
            <table border="0" cellpadding="0" cellspacing="0" class="tablesorter">
                <thead>
                    <tr>
                        <th>Study Id</th>
                        <th>Date</th>
                        <th>Start Time</th>
                        <th>Scheduler Name</th>
                        <th>Activity Description</th>
                        <th>Status</th>
                    </tr>
                </thead>
                <tbody>
                    <g:each in="${data}">
                        <tr>
                            <td><g:remoteLink action="show" controller="DailyJobActivity" params='[id:"${it?.id}", name:""]' update="[success:'dataBox',failure:'error']" onSuccess="showDataBox()">${it?.study?.name}</g:remoteLink></td>
                            <!-- <td>${it?.provider}</td> -->
                            <td><g:remoteLink action="show" controller="DailyJobActivity" params='[id:"${it?.id}", name:""]' update="[success:'dataBox',failure:'error']" onSuccess="showDataBox()"><g:formatDate format="MMM dd, yyyy HH:mm" date="${it?.last_activity_datetime}"/></g:remoteLink></td>
                            <td><g:remoteLink action="show" controller="DailyJobActivity" params='[id:"${it?.id}", name:""]' update="[success:'dataBox',failure:'error']" onSuccess="showDataBox()"><g:formatDate format="MMM dd, yyyy HH:mm" date="${it?.started_datetime}"/></g:remoteLink></td>
                            <td></td>
                            <td><g:remoteLink action="show" controller="DailyJobActivity" params='[id:"${it?.id}", name:""]' update="[success:'dataBox',failure:'error']" onSuccess="showDataBox()">${it?.job}</g:remoteLink></td>
                            <td><g:remoteLink action="show" controller="DailyJobActivity" params='[id:"${it?.id}", name:""]' update="[success:'dataBox',failure:'error']" onSuccess="showDataBox()">${it?.current_status}</g:remoteLink></td>
                        </tr>
                    </g:each>
                </tbody>
            </table>
             </div>
        </content>
</g:applyLayout>

DailyJobActivity控制器如下所示。

BottomOptionsNone:

代码语言:javascript
复制
<div class="bottoMenu">
    <div class="pg">    
        <g:if test="${instanceTotal != null}">
            <g:if test="${remotePagination == true}">
                <util:remotePaginate action="${params.action}" params="${params}" total="${instanceTotal}" maxsteps="10" onSuccess="showDataBox()" update="[success:'dataBox',failure:'error']" /> 
            </g:if>
            <g:else>
                <g:paginate maxsteps="10" action="${params.action}" total="${instanceTotal}" params="${params}"/>
            </g:else>
        </g:if>
    </div>
</div>

RemotePagination脚本:

代码语言:javascript
复制
<script>remotePagination
                if (typeof (hideMsg) != "undefined")
                    hideMsg()
            </script>

协议中的导航器:

代码语言:javascript
复制
        <g:applyLayout name="bottomOptionsnone">

DailyJobActivity控制器

代码语言:javascript
复制
package com.datumrite.sdtm
import java.text.SimpleDateFormat;
import com.datumrite.master.*;
import com.datumrite.BaseController
import com.datumrite.sdtm.Dailyjob


@Mixin(BaseController)
class DailyJobActivityController {
    def commonService;
    def view_name='/dataManagement/DailyJob'
    def protoId 
    def providerId
    def index() { }

    def show(){
        System.out.println "=== Activity ===";
        def data = []
        def job = Dailyjob.get(params.id as Long);
        data = Dailyjobactivity.where { 
        daily_job == job  
        }.list([sort:'activity_datetime',order:'desc'])
        System.out.println "=== Data ==="+data;
        render(view:view_name+'/jobactivity',model:[data:data,instanceTotal:data.size()])
    } 
}

我给出的最大步骤为10 .并相应地呼叫..。但它并没有得到反映。

我想要不。行数为10..但正如您在上面所看到的,在这一页中有更多的内容。

有人能帮忙吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-18 07:32:05

来自文档

The步骤(可选)-显示用于分页的步骤数(默认为10)。仅当params.maxsteps为空时才使用

maxStep用于确定分页链接的数量,而不是项/记录的数量。

为此,您必须再次从文档中max

最大值(可选)-每页显示的记录数(默认为10)。仅当params.max为空时才使用

max的重要之处在于,如果存在params.max,那么g:paginate将忽略这个属性。g:paginateparams中添加了一些属性,如max用于记录的数量,offset用于记录的开始索引等等。您必须在查询数据时使用这些。例如,您的控制器代码可以如下所示

代码语言:javascript
复制
    def show(){
    System.out.println "=== Activity ===";
    def data = []
    def job = Dailyjob.get(params.id as Long);

    //preparing max and offset from params
    Integer max = params.max ? params.int("max") : 10
    Integer offset = params.offset ? params.int("offset") : 0

    data = Dailyjobactivity.where { 
        daily_job == job  
    }.list([sort:'activity_datetime', order:'desc', max: max, offset: offset])

    System.out.println "=== Data ==="+data;
    render(view:view_name+'/jobactivity',model:[data:data,instanceTotal:data.size()])
}  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32644763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档