【发布时间】:2021-11-23 15:48:34
【问题描述】:
我有两个这样的复选框:
CheckBox checkBox1 = new AjaxCheckBox("enableCheckBox1", new PropertyModel<Boolean>(channelModel, "checkBox1")) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
if (!getModelObject()) {
// How can I uncheck checkBox2 when checkBox1 is unchecked
checkBox2.setModelObject(false); // compilation error as checkBox2 is defined after this line.
target.add(checkBox2); // same compilation error
}
}
};
CheckBox checkBox2 = new AjaxCheckBox("enableCheckbox2", new PropertyModel<Boolean>(channelModel, "checkBox2")) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
if (getModelObject()) {
checkBox1.setModelObject(true);
target.add(checkBox1);
}
}
};
当我检查 checkBox2 时,我希望自动检查 checkBox1,这是我能够做到的。但是,如果我想在 checkBox1 未选中的情况下取消选中 checkBox2,我该怎么做?我遇到编译错误,因为 checkBox2 是在使用它的行之后定义的。除了调用实例之外,还有其他方法可以获取 checkBox 属性吗?
【问题讨论】: