簡體   English   中英

Wicket 1.4 => 6.7替換AjaxButton:getAjaxCallDecorator

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM