2017-06-29 54 views
1

我正在使用primefaces數據表來顯示用戶使用單選按鈕進行選擇,現在當頁面加載時,默認顯示頁面1,每頁顯示25行[這是預期的],現在我想要的是如果用戶設置25行每頁[下拉],然後去說第4頁並選擇用戶,提交表單,現在當頁面刷新時,我希望用戶看到前一頁(第4個而不是第1個)和同一個no的表。每頁行數(25而不是10)。如何設置頁碼,primefaces數據表的每頁行數?

粘貼在我的數據表下面。 [我的bean是ViewAccessscoped]。

<p:dataTable id="tableid" var="result" 
          styleClass="supertable top75" 
          paginatorTemplate="{RowsPerPageDropdown} {CurrentPageReport} {LastPageLink} {NextPageLink} {PageLinks} {PreviousPageLink} {FirstPageLink}" 
          value="#{bean.datamodel}" 
          tableStyleClass="pdatatable-table" rows="10" 
          rowsPerPageTemplate="10,25,50,100" paginator="true" 
          emptyMessage="No Users are available" 

我試圖在我的豆使用下面的代碼但din't制定出設置「第一」的DataTable屬性,這就是我想補充

以下事件XHTML

<p:ajax event="page" listener="#{bean.onPageChange}"></p:ajax> 

和方法豆

public void onPageChange(PageEvent event){ 

    pageindex=event.getPage(); 
    final DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("loginasform:homeDataTable"); 
    dataTable.setFirst(pageindex); } 

我確實收到豆中的價值,但它仍然顯示的默認頁面的每頁d行。

我是JSF和Primefaces的新手,請告訴我你是否可以幫忙。

+0

需要的問題的版本信息。本來會阻止下面的答案 – Kukeltje

回答

0

要恢復你的數據表中的狀態(就像是在刷新前)...

集P:dataTable的屬性multiViewState = 「真」(參見演示Table State

然而,如果它似乎沒有工作,改爲@ViewScoped。同時確認您正在使用的primefaces的版本。

+1

嘿丹尼斯,我認爲該屬性適用於primefaces 6和我有primefaces 5,我實際上是附近得到我想要的,一旦我與結果確認後會發佈答案 – faizan

+0

確實對永遠更好在答案中發佈版本信息 – Kukeltje