我准备了一个可重复使用的面板并将其添加到我的页面。 我的页面表单中有2个下拉选项。 我正在使用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
的工作方式相同?
答案 0 :(得分:6)
你需要:
panel1.setOutputMarkupId(true);
panel1.setOutputMarkupPlaceholderTag(true);
实际上并不总是需要Ajax才能工作,但是需要从客户端进行刷新。据我所知,它不会伤害任何东西......
在行为中,您需要告诉目标刷新它:
onUpdate(AjaxRequestTarget target) { ...
DDC2.setVisible(true);
panel1.setVisible(true);
target.addComponent(DDC2);
target.addComponent(panel1);
}