我有这段代码:

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)方法并从行为中移出代码,因为它在所有浏览器中均应正常工作。

10-04 17:39