我正在创建一个带有价格服务列表的ListView。每个定价服务都有一个不同的术语列表,即DropDownChoice。问题是,当我在下拉列表中选择各种值时,Term don的值不会更新。这是一个向导,所以我尝试使用正确的Term更新向导,然后单击“next”(Wizard-object有一个具有Term对象的ProductOrder对象)。
谢谢, 泰耶
public ServiceSelectionStep(final NewSubscriptionWizard wizard) {
final ListView<PricedService> serviceChoiceList = new ListView<PricedService>(
"serviceList",
wizard.getCompanyPriceModel().getPricedServices()) {
protected void populateItem(ListItem<PricedService> item) {
final PricedService service = item.getModel().getObject();
// Adding labels to the list.
addPricedServiceLabels(item, service);
DropDownChoice<Term> termsDropDown = new DropDownChoice<Term>(
"term",
new PropertyModel<Term>(wizard.getProductOrder(), "term"),
service.getTerms(),
new ChoiceRenderer<Term>("description"));
item.add(termsDropDown);
}
};
add(serviceChoiceList);
}
答案 0 :(得分:1)
您可以使用AJAX回调执行此操作。检查Wicket示例中的“下拉选择示例”。
http://www.wicket-library.com/wicket-examples/ajax/
This是重要的文件,它向您展示如何使用正确的模型执行此操作。
答案 1 :(得分:0)
尝试在AjaxFormComponentUpdatingBehavior中定位termsDropDown。
termsDropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
wizard.getProductOrder().setService(service);
System.out.println("Chosen term: " + wizard.getProductOrder().getTerm());
target.addComponent(termsDropDown);
}
});
item.add(termsDropDown);