分页重设行复选框

时间:2018-10-09 15:01:51

标签: grails checkbox groovy html-table gsp

我有一个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')

但不幸的是,该列表为空。

1 个答案:

答案 0 :(得分:0)

分页不提交表单(或者至少不像您想的那样提交表单;我真的不记得底层逻辑是否使用表单),因此您的复选框不会提交到任何地方。

您需要考虑采用其他方法提交表单,以便保留您的复选框选择。两种方法可能是:

  1. 编写您自己的分页标签,该标签包装g.paginate并修改要发送的参数,以便包括您的复选框值。

  2. 将ajax处理添加到您的复选框,以便在更改后立即提交。