2012-06-28 20 views
0

我正在使用ace datatable和分頁。現在,在選擇一些行後的頁面中,當我轉到另一頁面並返回時,選擇消失。行不再被選中。具有分頁程序的Ace Datatable行選擇器

下面是代碼:

<ace:dataTable var="device" value="#{reportBean.searchTableList}" 
         id="MeterTable" rows="10" paginator="true" 
         paginatorPosition="bottom" page="1" selectionMode="multiple" 
         stateMap="#{reportBean.rowStateMap}" pageCount="4" 
         rowStyleClass="oddRow1,evenRow1"> 


         <ace:column id="column3" headerText="Meter Name" 
          sortBy="#{device.device_name}" filterBy="#{device.device_name}" 
          selected="true" 
          filterMatchMode="contains" styleClass="dataTableHeader"> 
          <ice:outputText value=" #{device.device_name}" /> 
         </ace:column> 
</ace:dataTable> 

回答

2

好像你reportBean被RequestScoped。 這意味着當您瀏覽帶有表格的頁面時,將加載reportBean,當您做出選擇時,選擇值將存儲在reportBean.rowStateMap中。當瀏覽到另一個頁面時,reportBean和選擇信息被刪除,因爲它不是相同的請求(Request Scoped!)。當您再次瀏覽表格頁面時,將創建一個新的reportBean,該報告Bean沒有關於選擇的任何信息。

您可以嘗試將reportBean更改爲SessionScoped,但是您應該考慮其他影響。