2013-07-09 82 views
1

我有一個Datatable與分頁,我想改變當前頁面與一個命令鏈接外Datatable,我怎麼能得到它?從命令鏈接改變Primefaces Datatable的頁面與分頁

<p:commandLink title="changePage" action="#{myBean.changeMethod}" 
    update="myDataTable" /> 
<p:dataTable id="myDataTable" var="myItem" paginator="true" rows="1" 
    value="#{myBean.ListOfItem}" binding="#{myBean.DataTable}"> 
    ... 
    ... 
</p:dataTable> 

問候!

回答

12

這將表的頁面設置爲第一個

public void changeMethod() { 
final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot() 
    .findComponent("myDataTable"); 
int first = 0; 
d.setFirst(first); 

}

或者在客戶端:

widgetVar.getPaginator().setPage(pageindex); 

編輯: 「第一」 屬性指示要顯示的第一行的索引

+0

謝謝!很高興知道它,但我真的想設置任何頁面。當我點擊commandLink時,''進入其他數據表中,我可以知道頁面號是什麼,有什麼方法可以用這個數設置頁面?問候。 – Alavaros

+0

哦,等一下!我所需要的就是在你的回答中,我認爲用'setFirst'改變分頁符,我只做了'd.setFirst(numberOfPage)'。謝謝!!! PD:也許如果方法名稱像'setCurrentPage'那樣更直觀。 – Alavaros

+0

非常感謝你,它節省了我的一天 –

1

對我的作品很不錯,但你必須輸入完整的組件名稱

FacesContext.getCurrentInstance().getViewRoot().findComponent("form:panel:datatable"); 
1

這是確定的,但現在在客戶端上的primefaces 5.1你必須做這樣的:爲你解答

PF('widgetVar').getPaginator().setPage(pageindex);