我有这段代码:
final WebMarkupContainer container = new WebMarkupContainer("container");
container.setVisible(aBooleanValue);
container.setOutputMarkupId(true);
container.setOutputMarkupPlaceholderTag(true);
add(container);
final CheckBox hideContainer = new CheckBox("hideContainer", new PropertyModel<Boolean>(getModel(), "hideContainer"));
container.add(hideContainer);
hideContainer.add(new AjaxFormComponentUpdatingBehavior("onchange") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
if (Boolean.TRUE.equals(getModelObject().getHideContainer())) {
container.setVisible(false);
} else {
container.setVisible(true);
}
target.addComponent(MyForm.this.get("container"));
}
});
Wich创建一个WebMarkupContainer和一个Checkbox,如果该复选框被选中,则该容器应被隐藏;如果该复选框未被选中,则该容器应是可见的。
但这不起作用...我做错了什么?
最佳答案
您可以尝试使用AjaxCheckBox。覆盖onUpdate(AjaxRequestTarget)
方法并从行为中移出代码,因为它在所有浏览器中均应正常工作。