我准备了一个可重用的面板并将其添加到我的页面。
我页面的表单中有2个dropdownchoice。
我正在使用https://cwiki.apache.org/WICKET/dropdownchoice-examples.html#DropDownChoiceExamples-Note的ajax示例
两个DDC正常工作(更改一个值,然后隐藏/取消隐藏另一个值)。
但在我的面板上不起作用。
我正在使用:

private final MyPanel panel1 = new MyPanel ("MyPanel");
panel1.setOutputMarkupPlaceholderTag(true);

...在DDC1 ajax行为方法中:
onUpdate(AjaxRequestTarget target) { ...
    DDC2.setVisible(true);
    panel1.setVisible(true);
}

我必须提交表单以隐藏/取消隐藏panel1
在不提交表单的情况下,如何使其与DDC2相同?

最佳答案

你需要 :

panel1.setOutputMarkupId(true);


panel1.setOutputMarkupPlaceholderTag(true);

实际上,并非总是要使Ajax能够使用您拥有的文件,而是从客户端驱动刷新所需的文件。据我所知,这不会伤害任何事情...

在行为中,您需要告诉目标刷新它:
onUpdate(AjaxRequestTarget target) { ...
    DDC2.setVisible(true);
    panel1.setVisible(true);
    target.addComponent(DDC2);
    target.addComponent(panel1);
}

10-04 23:33