wicket ajax隐藏/取消隐藏可重复使用的面板而不提交表格

时间:2012-10-24 15:19:33

标签: ajax wicket panel behavior

我准备了一个可重复使用的面板并将其添加到我的页面。 我的页面表单中有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的工作方式相同?

1 个答案:

答案 0 :(得分:6)

你需要:

panel1.setOutputMarkupId(true); 

panel1.setOutputMarkupPlaceholderTag(true);
实际上并不总是需要Ajax才能工作,但是需要从客户端进行刷新。据我所知,它不会伤害任何东西......

在行为中,您需要告诉目标刷新它:

onUpdate(AjaxRequestTarget target) { ...
    DDC2.setVisible(true); 
    panel1.setVisible(true);
    target.addComponent(DDC2);
    target.addComponent(panel1); 
}