Grails - 如何从g中修改列表项:动态选择

时间:2014-07-30 23:02:22

标签: ajax grails gsp

我有一个名为Client的域类,其中包含典型属性(name, surname,等)。

还有一个名为PaymentConditions的类(它建立了一些参数来计算客户必须支付的金额),它们引用了ClientClient可以包含多个PaymentConditions

最后有一个Payment类,其中包含paymentDateamount等属性以及对ClientPaymentConditions的引用。

当我想注册Payment时,我使用Ajax调用从正在进行付款的Client(包括客户端ID)中检索数据。但问题在于,由于引用了PaymentConditions,所以有一个下拉列表,其中包含所有已注册的付款条件。我需要的是过滤下拉列表项以仅显示与检索到的client相关的项目。

你能帮我解决这个问题吗?

提前致谢!

已编辑:表单中有一个输入字段,用户必须输入客户的姓氏。此输入字段已实现JQuery UI自动完成功能,因此在选择客户端时,必须为检索到的客户端更新或过滤PaymentConditions下拉列表。

1 个答案:

答案 0 :(得分:4)

为了显示下拉列表,grails提供了一个特殊的选择标记 -

<g:select name="paymentCondition"               //Name you want to send back to server
      from="${client.paymentConditions}"        //Client wise filtered conditions where client is a passed client instance
      value="${client.paymentConditions.id}"    //Selected option value to send to server
/>

或者,如果您只想在控制器中过滤列表,那么您可以这样做 -

def client = Client.get(id); 
def paymentConditions = client.paymentConditions

根据您的实施方式使用您喜欢的方式。希望它有所帮助。