我在Wicket中有一个带有几个DropDownChoice组件的表单。对于其中一个DropDownChoice组件,我想首先禁用它,然后启用它并使用Java函数的输出填充它,该函数将另一个DropDownChoice组件的值作为输入。我如何使用Ajax做到这一点?
答案 0 :(得分:1)
看看org.apache.wicket.examples.ajax.builtin.ChoicePage,它完全符合您的需求。
答案 1 :(得分:0)
首先,要对下拉选项进行调整,您需要添加AjaxaFormComponentUpdatingBehaviour("onchange")
。
然后,如果您需要填充一个下拉列表的选项列表,在其他下拉列表的选择更改中,则需要使用AjaxFormComponentUpdatingBehaviour("onchange") {}
方法编写它。
在方法内部,您需要构建列表并通过setChoices(list)将其添加到另一个下拉列表中;
由于所有这些都是在ajax中完成的,因此您需要通过target.addComponent(doprdown2);
由于组件将在ajax中运行,因此您需要执行以下第二次下拉
dropdown2.setOutputMarkupPlaceholderTag(true);
完整示例:
DropdownChoice ddc1 = new ("id1", model1, list1);
DropdownChoice ddc2 = new ("id2", model2, list2);
ddc2.setOutputMarkupPlaceholderTag(tag);
ddc1.add(new AjaxFormComponentUpdatingBehaviour("onchange"){
protected void onUpdate(AjaxRequestTarget target) {
// Build the list2
ddc2.setChoices(list2);
target.addComponent(ddc2);
}
});