我有一个多重选择如下:
<g:select name="receiptItems" from="${HealthService.findAllByDoctor(Doctor.findBySecUser(new ReceiptController().getCurrentlyLoggedUser()))}"
multiple="multiple" optionKey="id"
optionValue="${{it.healthServiceType.healthService}}"
size="5" value="${receiptInstance?.healthServices*.id}" class="many-to-many"
onchange="${remoteFunction(
controller: 'Receipt',
action: 'sumReceiptItems',
params: '\'receiptItemsSelected=\' + jQuery(this).val()',
onSuccess: 'updateTotalAmount(\'totalAmount\', data, \'00000\')')}"/>
每次选择后,使用remoteFunction
,调用控制器中的方法进行一些计算并更新totalAmount字段。它运行良好但是,当调用save
方法时,healthServices
字段为空...我不明白为什么。
我也试过
receiptInstance?.healthServices.collect{it.id}
但我的结果相同。 有什么建议吗?
答案 0 :(得分:1)
您将选择标记命名为“ receiptItems ”,因此在Controller中检查该参数,然后将其添加到 receiptInstance :
params?.receiptItems?.each {
def service = HealthService.get(it)
receiptInstance.addToHealthServices(service)
}