对于具有一对多关系的子项,无法将g:复选框设置为off

时间:2010-04-22 00:29:49

标签: grails groovy

g有一个奇怪的问题:复选框在切换时没有保存 一对多关系中的孩子。例如:

class Parent {

 Boolean enabled

 static hasMany = [children: Child]

 static constraints = {
   enabled(blank: true, nullable: true)
 }


}

class Child {

 Boolean enabled

 static belongsTo = [parent: Parent]

 static constraints = {
   enabled(blank: true, nullable: true)
 }

}

发布到父控制器的真/假值将适用于Parent:

<g:checkBox name="enabled"  value="${parentInstance?.enabled}"/>

然而,不是为了孩子!发布到父控制器时,我只能 从假到真,试图再次从真假变为假 不工作:

<g:each in="${parentInstance.children}" status="i" var="child">
 <g:checkBox name="child[${i}].enabled" value="${child?.enabled}"  />
</g:each>

这似乎是个错误。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

这可能是通常的问题,未选中的复选框不会在请求中发送任何内容(它们不发送'关闭',它们只是不发送任何内容)

在更新操作中,尝试将所有子项设置为enabled = false,然后再应用表单参数