我有这些域类:
class Client {
String name
Date birthDate
BigInteger accountNumber
...
}
class PaymentCondition {
Client client
String conditionName
BigDecimal discountPercentage
...
}
class Payment {
Client client
PaymentCondition paymentCondition
BigDecimal grossIncome
BigDecimal totalDiscount
BigDecimal netIncome
...
}
对于这些类,有自动生成的控制器和视图。当我想注册付款时,我必须选择一个客户端或输入客户的帐号(此输入字段正在实现JQuery UI自动完成功能,因此显示了根据输入的数字显示所有事件的列表)并通过AJAX调用检索其数据。问题是PaymentCondition下拉列表必须更新或替换为包含与所选客户相关的付款条件的列表。
请帮帮我。
提前致谢。
答案 0 :(得分:0)
在您的控制器(通过AJAX调用)中,创建一个处理AJAX帖子的方法。请注意,参数名称number
将需要在稍后的$.post
调用的第二个参数中匹配参数的名称:
def updateAccountNumber(String number) {
render text: g.select(id: 'accountNumberSelect', name: 'accountNumber', from: Account.findAllByNumber(number), optionKey: "id", optionValue: "someProperty")
}
在GSP中,添加一些javascript以将监听器附加到其中一个下拉列表中:
<r:script>
$("#clientSelect").change(function() {
var clientNumber = $(this).val();
$.post("${g.createLink(action: 'updateAccountNumber')}", {number: clientNumber}, function(result) {
$("#accountNumberSelect").replaceWith(result);
});
});
</r:script>