我正在更改现有的Wicket页面,根据用户打开页面时的条件,在Java中设置文本和外观。大多数组件都可以很好地更新模型,但我仍然坚持使用AjaxCheckBox。
实例化复选框的代码大致是:
checkBox = new AjaxCheckBox("checkbox", new PropertyModel<Boolean>(this, "agreed")) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(installButton);}
};
add(checkBox);
和Wicket标记是:
<div style="margin: 1em;">
<input type="checkbox" wicket:id="checkbox">
<wicket:message key="Config.Agree"/>
</input><br/>
<button wicket:id="installButton"><span wicket:id="buttonText"/></button><br/>
</div>
没有任何运气取出检票口:消息行和用Java设置文本,谷歌让我失望。任何提示?
答案 0 :(得分:0)
没有什么比在SO上发布问题来从我们的常驻Wicket大师那里得到答案了......
答案是将wicket:message更改为span,将span绑定到标签,并将标签添加为复选框的子项。
新的Wicket标记:
<input type="checkbox" wicket:id="checkbox">
<span wicket:id="checkboxText"> </span>
</input><br/>
新Java代码:
Model checkboxTextModel = Model.of("Default text");
Label checkboxText = new Label("checkboxText", checkboxTextModel);
checkBox = new AjaxCheckBox("checkbox", new PropertyModel<Boolean>(this, "agreed")) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
target.add(installButton);
}
};
checkBox.add(checkboxText);
add(checkBox);
然后我可以使用checkboxTextModel.setObject(“my new string”)更改文本;以后。