0

我有一个域类 Report,带有一个引用的子类,提示符。

在编辑报告页面之一,您可以重新排列表格中提示的顺序。然后,当用户开始运行报告时,该页面上的提示按所述顺序排列。

Report edit.gsp 页面上的表格使用一些 jQuery 来允许拖放行,并更新显示顺序号,但仅在 UI 端,还没有返回数据库。

我希望能够将此新订单传递回我的更新命令,但无法弄清楚如何在我的一生中获取表格行数据。

搜索时几乎所有的结果都是如何从控制器获取数据到视图,反之亦然。

这是表格代码的片段

<table id="prompts">
            <thead>
                <tr>
                    <th>${message(code: 'prompt.name.label', default: 'Name')}</th>
                    <th>${message(code: 'prompt.description.label', default: 'Description')}</th>
                    <th>${message(code: 'prompt.required.label', default: 'Required')}</th>
                    <th>${message(code: 'prompt.displaySeqno.label', default: 'Display Order')}</th>
                </tr>
            </thead>
            <tbody>
                <g:each in="${reportInstance.prompts.sort{it.displaySeqno}}" status="i" var="prompt">
                    <tr class="${(i % 2) == 0 ? 'even' : 'odd'}" onclick='window.location = "${createLink(controller: "prompt", action: "edit", id: prompt.id)}"'>
                        <td>${fieldValue(bean: prompt, field: "name")}</td>
                        <td>${fieldValue(bean: prompt, field: "description")}</td>
                        <td>${prompt.required}</td>
                        <td class="displaySeqno">${prompt.displaySeqno}</td>
                    </tr>
                </g:each>
            </tbody>
        </table>

然后在控制器中,我尝试了

params.list('displaySeqno')

但它只会返回一个空数组。

如何从控制器类中获取 displaySeqno 的值?

谢谢。

4

1 回答 1

2

这是对 HTTP / Java EE 工作原理的基本了解将允许您非常轻松地解决问题的那些时间之一(这种情况经常发生)。表单或没有表单,您必须将一个值传递到发送到服务器的请求中,以便它最终到达服务器。这怎么样

<td class="displaySeqno">${prompt.displaySeqno}</td>

曾经去服务器,表格还是没有表格?答案是,它不是。假设一个典型的表单帖子,您需要将值存储在隐藏字段中

<input type="hidden" name="displaySeqno" value="${prompt.displaySeqno}" />

然后它将到达服务器。如果您使用某种 Ajax 进行处理,则需要通过 API 将其作为参数传递。假设 jQuery,例如:

前面的伪代码:

var params = $('#youFormId').serialize();
$.post('some/url/to/post/to', params, function(data) { 
});

底线是,如果您想将某些内容传递给服务器,则必须提供实现此目的的方法。

于 2013-02-26T23:04:21.020 回答