我正在嘗試使用2 g:paginate標籤對1個gsp上的2個表進行分頁。點擊一個表格中的分頁按鈕會對兩個表格進行分頁,因爲這兩個分頁標籤都使用相同的「max」和「offset」參數。我怎樣才能通過一個表分頁而不分頁另一個表?Grails對多個表進行分頁
在此先感謝。
我正在嘗試使用2 g:paginate標籤對1個gsp上的2個表進行分頁。點擊一個表格中的分頁按鈕會對兩個表格進行分頁,因爲這兩個分頁標籤都使用相同的「max」和「offset」參數。我怎樣才能通過一個表分頁而不分頁另一個表?Grails對多個表進行分頁
在此先感謝。
您還可以使用remote-pagination插件,它做相同的工作。乾杯。
這是一個在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>
歡呼
李
Grails分頁對於一個頁面中的多個分頁是完全沒有用的,因爲你不能傳遞自定義max和offset作爲屬性。這是爲什麼
def offset = params.int('offset') ?: 0
def max = params.int('max')
和文檔告訴你的原因「最大(可選) - 每頁顯示的記錄數(默認爲10)僅用於如果params.max爲空」 什麼呢? 創建我無法控制的東西是什麼意思。 良好的編程方式 - 讓我輸入我的變量或給我選項,然後使用您的默認值!
您可以隨時控制它 - 用params.max = anyint覆蓋它 – aldrin 2014-07-15 03:27:22
感謝您的回覆。對於Grails而言,我有點新鮮感,但我仍然沒有得到工作,無論是行動還是身份證。有什麼機會可以給我更多的細節? – emiles 2010-11-08 03:30:31
@emiles我已經用示例更新了我的答案 – leebutts 2010-11-08 05:30:36
我已經嚴格按照您的示例進行了操作,但在控制器操作中沒有看到「分頁」參數。是否有任何理由爲什麼'params'屬性不包含自定義值?我還應該提到我對grails宇宙相對來說比較陌生...... – toddk 2011-06-02 17:36:35