在GSP中使用数组列表进行分页

时间:2014-06-23 19:52:29

标签: grails pagination

如何使用<g:paginate\>标记对表格中的数组列表进行分页?

我在控制器中有这个

def selectevents(){
def events = DomainEvents.findAllByMonth('June')   
[events:events, count:events.size()]

}

我在“我的GSP”中有这个:

<table id="results-table" class="table table-bordered table-striped" style="width:100%">
<thead>
<tr style="background: #d3d3d3;">
    <th style="width: 3%;text-align: center;"></th>
    <th style="width: 10%;text-align: center;">Name</th>        
</tr>
</thead>
<g:each in="${events}" status="i" var="eventsInstance">
    <tr class="${(i % 2) == 0 ? 'odd' : 'even'}">
    <td>-</td>
    <td>${eventsInstance?.Name}</td>

    </tr>
</g:each>

然后这个:

<g:paginate next="Forward" prev="Back" maxsteps="5" controller="Controller" action="selectevents" total="${count}" />

但是分页标签不会出现。我想制作一个页面,每页5行,有一个?

1 个答案:

答案 0 :(得分:0)

您的代码正在调用DomainEvents.findAllByMonth('June'),该代码将返回6月份的所有活动。您只想检索其中5个子集,然后使用分页来浏览这些子集。

你可能在控制器中需要这样的东西:

def showEvents() {
    params.max = 5
    def count = DomainEvents.countByMonth('June')
    def events = DomainEvents.findAllByMonth('June', params)
    [domainEventsInstanceCount: DomainEvents.count(), domainEventsInstanceList: events]
}

然后在您的GSP中出现类似内容:

<div class="pagination">
    <g:paginate total="${domainEventsInstanceCount ?: 0}" />
</div>

我希望有所帮助。