如何使用<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行,有一个?
答案 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>
我希望有所帮助。