2010-05-03 3 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, таблица отобразится нормально.

Любые идеи?

+0

Я изменил область поддержки боба для запроса, по-прежнему та же проблема – juan

+0

Я изменил область действия на сеанс, и это сработало ... Думаю, я должен исследовать области немного – juan

ответ

2

Это вопрос с объемом.

После прочтения this post, я думаю, что правильный способ сделать это, чтобы установить его в viewScope

Если кто-то думает, что это неправильно, пожалуйста, дайте мне знать. Пока это мой ответ.

+0

подробнее http://download.oracle.com/ документы/кд/E12839_01/web.1111/b31973/af_lifecycle.htm # CHDGGGBI – juan

0

Я не уверен, что область бобов - это тот, который вы хотите использовать. Я бы предложил либо pageFlowScope, либо Session scope. Они наиболее точно соответствуют тому, что вы хотите моделировать.

PageFlowScope следует за тем, что пользователь нажимает, поэтому два экземпляра одного и того же веб-приложения/одного пользователя имеют разные области PageFlow.

Область сеанса является общей для всех экземпляров веб-приложения одним и тем же пользователем.

Область применения является общей для всех пользователей. Я бы избегал этого почти всегда.

Объем запроса длится только между запросами на просмотр. Не очень полезно, за исключением крайне коротких данных.

0

Вы не должны устанавливать его на sessionScope. Он будет действовать до тех пор, пока пользовательский сеанс не будет активен. Возможно, вы захотите использовать либо страницу FlowScope (это действительно для жизни страницы), либо requestScope, который действителен с момента, когда клиент делает запрос, пока не получит ответ.

Смежные вопросы