2013-07-24 42 views
0

所以,我有我的如何通過調用setVisible()方法檢票AJAX改變模型的可見性方法

公共類MyClass的擴展好康{

static AjaxFallbackLink ddd = null; 
    static AjaxFallbackLink dddd = null; 

(...) }

並在構造函數中我有:

DDD =新AjaxFallbackLink( 「以前的」){

 @Override 
     public void onClick(AjaxRequestTarget target) { 
      // 
     } 
    }; 
    ddd.setOutputMarkupId(true); 
    ddd.setOutputMarkupPlaceholderTag(true); 
    ddd.setVisible(false); 
     add(ddd); 

現在我想創建一個方法來改變這個項目的可見性。 但是,調用ddd.setVisible(true);在這種方法不起作用。

任何解決方案?

回答

4

創建你的鏈接像這樣的ADN設置其中應該在onConfigure()方法可見條件:

AjaxLink myLink = new AjaxLink("myLink") { 
    @Override 
    public void onClick(AjaxRequestTarget target) { 
     //click stuff done here 
    } 

    @Override 
    protected void onConfigure() { 
     super.onConfigure(); 
     setVisible(hereTheVisibleCondition); 
    } 
    }; 

這樣每當鏈接,便可呈現的將是可見的,或者不考慮由條件。

1

羅伯特的答案通常被認爲是更正確的,但我會提供一個替代方案。

你接近你的實現,但你有沒有打電話target.add(myLink);得到的myLink阿賈克斯刷新更新(在早期版本的檢票是target.addComponent())。

要用方法更改可見性,您必須通過AjaxRequestTarget。內onClick方法的AjaxButtonAjaxLink可以調用下面的方法:

private void updateVisibility(AjaxRequestTarget target, AjaxLink myLink, Boolean isVisible) { 
    myLink.setVisible(isVisible); 
    target.add(myLink); 
} 

希望幫助!

相關問題