[英]Wicket 1.4 => 6.7 replacing AjaxButton: getAjaxCallDecorator
我被要求升級我們現有的一個應用程序,我在確定如何更新我們的一些類時遇到了一些麻煩。
我們有自己的CustomAjaxButton
類,它extends AjaxButton
,其中重寫了getAjaxCallDecorator
,所以我們可以返回一個自定義的decorateOnSuccessScript
等。
我找到了https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax#WicketAjax-oawajax.IAjaxCallDecoratorisreplacedwitho.awajax.attributes.IAjaxCallListener 。 這個頁面確實解釋了原因,但我不確定如何將它與新的AjaxButton
實現相結合,因為getAjaxCallDecorator
已被刪除。
舊版本的代碼段:
@Override
protected IAjaxCallDecorator getAjaxCallDecorator() {
return new IAjaxCallDecorator()
{
private static final long serialVersionUID = 6L;
...
public CharSequence decorateScript(CharSequence script)
{
return script + " document.getElementById('inputBlocker').style.display='none';";
}
};
}
我不得不承認我在Wicket有一個很新的,我經驗豐富的同事正在度假。 任何幫助\\建議非常感謝。
試試這種方法:
add(new AjaxLink("btn"){
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
attributes.getAjaxCallListeners().add(new AjaxCallListener(){
@Override
public CharSequence getSuccessHandler(Component component) {
return " document.getElementById('inputBlocker').style.display='none';";
}
});
}
});
在AjaxCallListener中,您可以覆蓋所需的任何處理程序。 如果需要,可以將腳本執行更改為完整的處理程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.