繁体   English   中英

更改在Wicket中提交按钮的文本字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM