2010-05-03 31 views
2

來自ASP.NET我很難用基本的ADF概念。如何綁定按鈕上的ADF表單

我需要綁定一個按鈕點擊表,出於某種原因,我不明白(我傾向於頁面生命週期,我認爲它不同於ASP.NET),它不工作。

這是我的ADF代碼:

<af:commandButton text="#{viewcontrollerBundle.CMD_SEARCH}" 
    id="cmdSearch" 
    action="#{backingBeanScope.indexBean.cmdSearch_click}" 
    partialSubmit="true"/> 

<af:table var="row" rowBandingInterval="0" id="t1" 
        value="#{backingBeanScope.indexBean.transactionList}" 
        partialTriggers="::cmdSearch" 
        binding="#{backingBeanScope.indexBean.table}"> 
      <af:column sortable="false" headerText="idTransaction" id="c2"> 
       <af:outputText value="#{row.idTransaction}" id="ot4"/> 
      </af:column> 
      <af:column sortable="false" headerText="referenceCode" id="c5"> 
       <af:outputText value="#{row.referenceCode}" id="ot7"/> 
      </af:column> 
      </af:table> 

這是cmdSearch_click:

public String cmdSearch_click() { 
    List l = new ArrayList(); 
    Transaction t = new Transaction(); 
    t.setIdTransaction(BigDecimal.valueOf(1)); 
    t.setReferenceCode("AAA"); 
    l.add(t); 

    t = new Transaction(); 
    t.setIdTransaction(BigDecimal.valueOf(2)); 
    t.setReferenceCode("BBB"); 
    l.add(t); 

    setTransactionList(l); 

    // AdfFacesContext.getCurrentInstance().addPartialTarget(table); 

    return null; 
} 

的註釋行也不起作用。

如果我在我的Bean的構造函數中填充列表,表格呈現ok。

任何想法?

+0

我改變了我的支持bean範圍請求,仍然是同樣的問題 – juan 2010-05-03 15:28:29

+0

我改變了範圍爲會議,它的工作...我想我應該研究範圍有點 – juan 2010-05-03 15:44:51

回答

2

這是一個範圍問題。

閱讀this post後,我認爲正確的方式來做到這一點是如果有人認爲這是不正確將其設置爲viewScope

,請讓我知道。現在這是我的答案。

+0

更多信息http://download.oracle.com/文檔/ CD/E12839_01/web.1111/b31973/af_lifecycle.htm#CHDGGGBI – juan 2010-05-03 16:13:37

0

我不確定支持bean範圍是你想要使用的正確的範圍。我會建議pageFlowScope或會話範圍。這些將最接近您想要建模的地圖。

PageFlowScope遵循用戶點擊的內容,因此同一Web應用程序/同一用戶的兩個實例具有不同的PageFlow範圍。

會話範圍對於同一用戶的所有Web應用程序實例而言是通用的。

應用範圍對所有用戶都是通用的。我幾乎總是會避免這種情況。

請求範圍只持續在查看請求之間。除非是極短的數據,否則不會有用。

0

您不應將其設置爲sessionScope。直到用戶會話處於活動狀態,它纔會有效。您可能希望使用pageFlowScope(這對於頁面的生命週期有效)或從客戶端發出請求直到接收到響應爲止有效的requestScope。