我有一个名为Client
的域类,其中包含典型属性(name, surname,
等)。
还有一个名为PaymentConditions
的类(它建立了一些参数来计算客户必须支付的金额),它们引用了Client
。 Client
可以包含多个PaymentConditions
。
最后有一个Payment
类,其中包含paymentDate
,amount
等属性以及对Client
和PaymentConditions
的引用。
当我想注册Payment
时,我使用Ajax调用从正在进行付款的Client
(包括客户端ID)中检索数据。但问题在于,由于引用了PaymentConditions
,所以有一个下拉列表,其中包含所有已注册的付款条件。我需要的是过滤下拉列表项以仅显示与检索到的client
相关的项目。
你能帮我解决这个问题吗?
提前致谢!
已编辑:表单中有一个输入字段,用户必须输入客户的姓氏。此输入字段已实现JQuery UI自动完成功能,因此在选择客户端时,必须为检索到的客户端更新或过滤PaymentConditions下拉列表。
答案 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
根据您的实施方式使用您喜欢的方式。希望它有所帮助。