目标是更新"员工"同时为特定部门选择新经理。需要更新的属性属于前一个部门主管,因此需要前一个经理的记录ID。
如果你看下面的代码,&#34; this.value&#34;将正确地告诉我新选择的经理的记录ID(GSP中的下拉组合),但我似乎无法通过简单的$ {deptInstance?.manager?.id}将前一个经理的记录ID传递给ajax remoteFunction < / p>
他们之间的关系:员工--- 1:N ---&gt;部门
GSP中的代码段:
<g:select
name="manager.id"
from="${Staff.list()}"
optionKey="id"
value="${deptInstance?.manager?.id}"
onchange="${remoteFunction(action:'managerMaintenance', params:'\'oldmanager=\' + this.value + \'&newmanager=\' + this.value')};">
到目前为止,我得到了两个参数。
唯一的问题是,一旦我使用$ {groupInstance?.manager?.id}而不是&#34; this.value&#34;对于oldmanager参数,那么我无法在控制器方法中收到任何内容&#34; managerMaintenance&#34;
有没有人知道如何在gsp remoteFunction调用中引用下拉组合的先前值?
也许我的方法是错误的但我会感谢有关正确的GSP语法的任何输入或可能的解决方法。
非常感谢, 球
答案 0 :(得分:2)
我怀疑你是否甚至需要通过oldmanager
作为参数。
更简洁的方法是阅读以获取managerMaintenance
控制器操作中管理员的先前值。
示例gsp:
<g:select
...
onchange="${remoteFunction(action:'managerMaintenance', id:deptInstance?.id, params:[manager.id:this.value])}">
示例控制器:
def managerMaintenance = {
def deptInstance = Department.get(params.id)
def oldManager = defInstance.manager
deptInstance.properties = params
def newManager = defInstance.manager
}
当然,如果你也需要它,还有这个好方法......
domainInstance.getPersistentValue('propertyName')