[英]Changing the textfield of button on submit in Wicket
我的面板上有一个简单的按钮,定义如下:
item.add(new Button("favButton") {
public void onSubmit() {
User.getCurrentUser().fav(book);
}
});
该按钮在html文件中如下所示:
<td><button type="submit" class="btn btn-default" wicket:id = "favButton">Add to my favourites</button></td>
因此,默认情况下,其文本为:
加到我的最爱
单击后希望将其更改为以下内容:
从我的收藏夹中删除
如果在此状态下单击,则返回上一个(添加到我的收藏夹)。
我已经将按钮的状态保留在变量中,因此,如何根据该变量更改按钮的标签?
编辑:
根据svenmier的建议将其更改为以下内容:
Panel.java
.....
IModel<String> textModel = new AbstractReadOnlyModel<String>() {
public String getObject() {
return added ? getString("removeFav") : getString("addFav");
}
};
final Form<?> buttonForm = new Form<Object>("buttonForm");
buttonForm.add(new AjaxButton("favButton", textModel) {
@Override
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
super.onSubmit(target, buttonForm);
target.add(this);
}
});
buttonForm.add(new AjaxButton("readButton", textModel) {
@Override
protected void onSubmit(AjaxRequestTarget target,
Form<?> form) {
super.onSubmit(target, buttonForm);
target.add(this);
}
});
item.add(buttonForm);
....
Panel.html
<form action="" wicket:id="buttonForm">
<td><input wicket:id="favButton" type = "submit"/></td>
<td><input wicket:id="readButton" type = "submit" /></td>
</form>
仍然不能正常工作。
最简单的解决方案是:
<input type="button">
代替 ...因此它会自动更改value属性:
IModel<String> textModel = new AbstractReadOnlyModel<String>() {
public String getObject() {
return added ? getString("removeFav") : getString("addFav");
}
};
new Button("favButton", textModel) { };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.