Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Ajax填充Wicket DropDownChoice_Java_Javascript_Ajax_Wicket - Fatal编程技术网

Java 使用Ajax填充Wicket DropDownChoice

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

我在Wicket中有一个表单,有几个DropDownChoice组件。对于其中一个DropDownChoice组件,我希望首先将其禁用,然后启用它,并使用Java函数的输出填充它,该函数将另一个DropDownChoice组件的值作为输入。使用Ajax我将如何做到这一点

看看org.apache.wicket.examples.ajax.builtin.ChoicePage,它完全符合您的要求。

首先,要调整下拉选项,您需要添加
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);
}
});