[英]Primefaces datatable and current page not working
我正在使用Prime Faces 6.0。
我有一個帶有LazyDataModel的數據表。 用戶可以使用內置分頁器更改頁面。 當用戶從第一頁切換到第二頁時,我需要知道currentPage,並且在客戶端中需要它。
這是數據表的代碼
<p:dataTable
id="listingsTable"
value="#{listingsLazyDataModel}"
var="actualAd"
paginator="true"
rows="#{applicationScopedBean.advertisingsPaginationSize}"
lazy="true"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="10,20,30"
paginatorPosition="bottom"
widgetVar="listingsTableDesktop"
first="#{searchAdvertisingModel.currentPage*applicationScopedBean.advertisingsPaginationSize}">
...
...
<p:ajax event="page" listener="#{listingsController.pageChanged}" oncomplete="pageChangedOnDetails(PF('listingsTableDesktop'))" />
...
---
</p:dataTable>
這是js代碼
function pageChangedOnDetails(listingsTableDesktop){
console.log(listingsTableDesktop.paginator.getCurrentPage());
}
問題是getCurrentPage()方法返回上一頁。 不是實際的。 僅作為參考,頁面以0為底。所以第一頁是頁面0。
實際行為與預期行為的示例
我可以用什么方式解決這個問題? 謝謝
基數為0,但您的事件函數似乎正在運行。
嘗試在其他地方運行函數,然后在event =“ page”之外的地方運行。
我的意思是,當您的頁面為1(默認)並在第3頁上單擊時,它會輸出0(0 + 1 =第1頁),然后才輸出到第3頁。如果在第3頁上單擊現在為6,它將輸出2(2 + 1 =第3頁),僅在轉到第6頁之后。
即使使用oncomplete而不是onclick也會發生這種情況。 希望能有所幫助。
此問題是在PF 6.0和6.1中發現的一個錯誤,但是在當前版本(6.2)中,此問題已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.