我正在尝试使用2 g:paginate标签在1 gsp上对2个表进行分页。点击1表上的paginate按钮会对两个表分页,因为两个paginate标签都使用相同的'max'和'offset'参数。如何在没有对另一个表进行分页的情况下对1个表进行分页?
提前致谢。
答案 0 :(得分:3)
这是一个在paginate标签上使用额外参数的示例。 Foo和Bar是两个具有String属性“name”的域类。我在Bootstrap.groovy中创建了50个。
PageController.groovy:
class PageController {
def index = {
if (params.paginate == 'Foo') {
def fooPagination = [max: params.max, offset: params.offset]
session.fooPagination = fooPagination
} else if (params.paginate == 'Bar') {
def barPagination = [max: params.max, offset: params.offset]
session.barPagination = barPagination
}
def barList = Bar.list(session.barPagination ?: [max: 10, offset: 0])
def fooList = Foo.list(session.fooPagination ?: [max: 10, offset: 0])
//This is to stop the paginate using params.offset/max to calculate current step and use the offset/max attributes instead
params.offset = null
params.max = null
[fooList: fooList, totalFoos: Foo.count(), totalBars: Bar.count(), barList: barList]
}
}
index.gsp中:
<html>
<head>
<title>Multi Pagination Example</title>
<meta name="layout" content="main"/>
<style type="text/css" media="screen">
h2 {
margin-top: 15px;
margin-bottom: 15px;
font-size: 1.2em;
}
</style>
</head>
<body>
<table>
<tr>
<td>
<h2>Foo</h2>
<table>
<tr>
<th>Name</th>
</tr>
<g:each in="${fooList}">
<tr><td>${it.name}</td></tr>
</g:each>
<tr>
<td class="paginateButtons">
<g:paginate total="${totalFoos}" max="10" offset="${session.fooPagination?.offset}" params="${[paginate:'Foo']}"/></td>
</tr>
</table>
</td>
<td>
<h2>Bar</h2>
<table>
<tr>
<th>Name</th>
</tr>
<g:each in="${barList}">
<tr><td>${it.name}</td></tr>
</g:each>
<tr>
<td class="paginateButtons">
<g:paginate total="${totalBars}" max="10" offset="${session.barPagination?.offset}" params="${[paginate:'Bar']}"/></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
欢呼声
利
答案 1 :(得分:1)
您还可以使用remote-pagination插件,它完成相同的工作。欢呼声。
答案 2 :(得分:0)
Grails分页对于一页中的多个分页完全没用,因为您无法将自定义最大值和偏移量作为属性传递。这就是
的原因def offset = params.int('offset') ?: 0
def max = params.int('max')
文档告诉你“max(可选) - 每页显示的记录数(默认为10)。仅在params.max为空时使用”什么? 创造一些我无法控制的东西是什么意思。 良好的编程方式 - 让我输入我的变量或给我选项,然后使用你的默认值!