我目前正在使用JSF 2和Primefaces 5.2,更確切地說使用p:dataTable
。 我使用p:dataTable
與分頁。從Primefaces數據表中檢索分頁對象
從我的Java bean中,我找不到檢索任何分頁組件的方法。我在一個物體特別感興趣,在那裏我能得到 選擇的元素在{RowsPerPageDropdown}
<p:dataTable
var="item"
value="#{items}"
rows="10"
id="tableItems"
paginator="true" paginatorPosition="top" paginatorAlwaysVisible="true"
paginatorTemplate="{CurrentPageReport} {PreviousPageLink} Page : {JumpToPageDropdown} {NextPageLink} NbrElements : {RowsPerPageDropdown}"
rowsPerPageTemplate="#{fn:length(items)},10,20,50"
currentPageReportTemplate="{startRecord}-{endRecord}/{totalRecords}" binding="#{tableComponent.table}">
通過檢查的頁面,在下拉菜單中的id是tableItems_rppDD
。
我試圖通過打印組件ID與 組合FacesContext.getCurrentInstance().getViewRoot()...getChildren()
和findComponent()
,但沒有成功找到它。
有誰知道如何讓我的手在分頁上,或者如果可能的話?或者它是一個純Javascript對象?
非常感謝
編輯:
我添加動態元素到我的清單(p:dataTable
+ h:commandLink
)。
如果您看數據表聲明,{RowsPerPageDropdown}
的第一個元素是新列表中的元素數(我們稱之爲n
)。 第一次,如果我從{RowsPerPageDropdown}
中選擇第一個元素,它將顯示n
元素。
如果我在列表中添加一個新的元素,在{RowsPerPageDropdown}
的第一個元素成爲n + 1
但在表中顯示的元素的總數是n
(最新的元素是下頁)。
我已經有輕微的變化{CurrentPageReport}
爲什麼你需要訪問它?你想解決什麼問題?也許lazyLoading對你更好。您在加載方法中收到「頁面」大小(在下拉列表中選擇),然後 – Kukeltje
如果只是獲取選定值,則可以始終查看請求參數並從那裏檢索它。它的ID /名稱與由':row'附加的數據表的完整ID相同。# – Kukeltje
@Kukeltje:查看更新。我會研究lazydatamodel。謝謝你們兩位 – ccheneson