我想要的是:
>如果我点击一个按钮,它应该不启用(不可点击)
在其他方法(点击)完成之前,只有AFTER
方法的结束.
这是我的按钮代码:
@Override
protected void onInitialize() {
add(createOkLink());
}
private IndicatingAjaxLink<Void> createOkLink() {
final IndicatingAjaxLink<Void> ret = new IndicatingAjaxLink<Void>("okLink") {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
//when I click on it,this button (link) should not be enabled while the rest of the methods are not finished.
method1(); //about 2-5 seconds running time
method2(); //about 2-5 seconds running time
method3(); //about 2-5 seconds running time
Feedback.success("success");
target.add(Feedback);
//after every method has finished,the button should be clickable againg
}
};
ret.setoutputMarkupId(true);
return ret;
}
我希望有一个人可以帮助我!
我正在使用Wicket 6.
final Form<?> form = new Form<>("form");
form.setoutputMarkupId(true).setoutputMarkupPlaceholderTag(true);
add(form
.add(new FeedbackPanel("Feedback"))
.add(new AjaxButton("button") {
@Override
protected void onSubmit(AjaxRequestTarget target,Form<?> form) {
info(System.currentTimeMillis());
target.add(form);
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printstacktrace();
}
}
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new AjaxCallListener()
.onBefore("$('#" + getMarkupId() + "').prop('disabled',true);")
.onComplete("$('#" + getMarkupId() + "').prop('disabled',false);"));
}
}));