我有一个GSP,其中包含一些行,并带有一个复选框,允许用户选择几行。
<table>
<thead>
<tr>
// Column headers
</tr>
</thead>
<tbody>
<g:each in="${itemList}" status="i"
var="instance">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
// Some other rows
<td>
<g:checkBox name="selected"
value="${instance.id}"
checked="false" />
</td>
</tr>
</g:each>
</tbody>
在我的桌子下面有一个分页:
<div class="pagination">
<g:paginate total="${total}" params="${params}"/>
</div>
现在的问题是,当我从第1页->第2页->切换到第1页时,第1页的所有复选框都被重置。
在分页调用列表控制器方法时,我在调用列表控制器方法时在调试器中观看以下内容,从而检查了页面切换的以下内容:
params.list('selected')
但不幸的是,该列表为空。
答案 0 :(得分:0)
分页不提交表单(或者至少不像您想的那样提交表单;我真的不记得底层逻辑是否使用表单),因此您的复选框不会提交到任何地方。
您需要考虑采用其他方法提交表单,以便保留您的复选框选择。两种方法可能是:
编写您自己的分页标签,该标签包装g.paginate并修改要发送的参数,以便包括您的复选框值。
将ajax处理添加到您的复选框,以便在更改后立即提交。