更新grails中域对象的多个实例

时间:2012-01-04 15:41:00

标签: grails gorm

是否可以在单个表单中显示一个表,该表显示域对象的一个​​实例,如下所示:

(域类“人”表)

Id     Name       LastName
1      John       Doe
2      Jane       Doe
3      Jerry      Doe

每个单元格应该是一个输入字段

这个想法是,该表应该看起来像一个电子表格,我可以编辑所有内容并只有一个提交按钮。

如果按下提交按钮,将更新所有人的实例。

你知道如何实现它吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。您必须构建一个包含X行的表单来创建(或添加一个按钮,以便用户可以创建更多行)。为了更新,您有一个固定的数字(数据库中的所有条目)。 HTML将如下所示:

<input type="text" readonly="readonly" value="1" name="id_0"/><input type="text" name="name_0"><input type="text" name="lastName_0"/>
<input type="text" readonly="readonly" value="2" name="id_1"/><input type="text" name="name_1"><input type="text" name="lastName_1"/>

gsp代码会根据您尝试做的具体情况而有所不同。但是你基本上会遍历所有对象并为每个对象创建上述结构。

在控制器中,params对象将如下所示:

[id_1:"2", name_0:"John", name_1:"Jane", lastName_1:"Doe", lastName_0:"Doe", id_0:"1"]

我故意搞砸订单,因为你不能依赖订单,因此你必须根据姓名将姓氏与姓氏相匹配。因此,您可以根据ID检索对象,更新所需的属性并保存。如果您需要有关gsp代码的帮助,请提供更多代码和详细信息,我很乐意为您提供帮助。