grails multiple select:值不存储在相关对象中

时间:2014-01-04 13:09:09

标签: select grails multi-select

我有一个多重选择如下:

<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}

但我的结果相同。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您将选择标记命名为“ receiptItems ”,因此在Controller中检查该参数,然后将其添加到 receiptInstance

params?.receiptItems?.each {
    def service = HealthService.get(it)
    receiptInstance.addToHealthServices(service)
}