Java 使用Ajax填充Wicket DropDownChoice
我在Wicket中有一个表单,有几个DropDownChoice组件。对于其中一个DropDownChoice组件,我希望首先将其禁用,然后启用它,并使用Java函数的输出填充它,该函数将另一个DropDownChoice组件的值作为输入。使用Ajax我将如何做到这一点 看看org.apache.wicket.examples.ajax.builtin.ChoicePage,它完全符合您的要求。首先,要调整下拉选项,您需要添加Java 使用Ajax填充Wicket DropDownChoice,java,javascript,ajax,wicket,Java,Javascript,Ajax,Wicket,我在Wicket中有一个表单,有几个DropDownChoice组件。对于其中一个DropDownChoice组件,我希望首先将其禁用,然后启用它,并使用Java函数的输出填充它,该函数将另一个DropDownChoice组件的值作为输入。使用Ajax我将如何做到这一点 看看org.apache.wicket.examples.ajax.builtin.ChoicePage,它完全符合您的要求。首先,要调整下拉选项,您需要添加ajaxaformComponentUpdateBehavior(“o
ajaxaformComponentUpdateBehavior(“onchange”)
然后,如果需要填充一个下拉列表的选择列表,在另一个下拉列表的选择更改中,则需要将其写入ajaxformcomponentupdateingbehavior(“onchange”){}
方法
在方法内部,您需要构建列表,并通过setChoices(list)将其添加到另一个下拉列表中;
由于所有这些都是在ajax中完成的,因此需要通过target.addComponent(doprdown2)将下拉列表添加到ajax目标中代码>
由于该组件将在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);
}
});