【问题标题】:Changing button text everytime when button was clicked in Wicket每次在 Wicket 中单击按钮时更改按钮文本
【发布时间】:2021-05-20 07:12:55
【问题描述】:

我有按钮作为 AjaxLink 和标签。而且我想实现切换按钮以在每次单击时更改文本。因此,假设按钮的初始文本为“One”,点击后应为“Two”,再次点击后应为“One” " 以此类推。

<a wicket:id="myBtn" type="button">
    <span wicket:id="btnText"></span>
</a>
AjaxLink<Void> myBtn = new AjaxLink<>("myBtn") {
    @Override
    public void onClick(AjaxRequestTarget target) {
        someModel.toggle();
    }
};
Label btnText = new Label("btnText", someModel.map(on -> on ? "One" : "Two"));
btnText.setOutputMarkupId(true);
btnText.setOutputMarkupPlaceholderTag(true);
myBtn.add(btnText);
add(myBtn);

点击后我的标签没有重新渲染,怎么办?

【问题讨论】:

    标签: java wicket


    【解决方案1】:

    你需要在target.add(btnText)onClick():

    final Label btnText = new Label("btnText", someModel.map(on -> on ? "One" : "Two"));
    btnText.setOutputMarkupId(true);    
    AjaxLink<Void> myBtn = new AjaxLink<>("myBtn") {
       @Override
       public void onClick(AjaxRequestTarget target) {
         someModel.toggle();
         target.add(btnText);
       }
    };
    myBtn.add(btnText);
    add(myBtn);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多