簡體   English   中英

分頁中的 Ajax 事件與 Primefaces 數據表不起作用

[英]Ajax event in pagination with Primefaces dataTable not working

我有一個帶有數據表的“正常”分頁。 第一個“加載”從數據庫中引入 25 個項目。 在 ajax“頁面”事件中,我將以下元素放入 25 個項目的塊中。 一切都與 Primefaces 5.1 版完美配合,但在 5.2 版中沒有調用 onPageChange 方法,實際上分頁什么也不做。

如果在 ajax 事件“page”中我添加 process="@this" 它確實調用了 bean,但不是指定的 onPageChange 方法,而是一個用 @PostConstruct 注釋標記的 start 方法(這樣,前 25 個項目和分頁總是相同的顯示這些項目)。

<p:panel id="..."
        header="..."
        style="..."
        toggleable="true"
        toggleSpeed="200" >
    <p:dataTable var="some_var"
                id="myDataTable"
                widgetVar="pag"
                first="#{[bean].first}" <-- bean attribute
                value="#{[bean].collectionOfObjects}"  <-- loading of the first 25 elements
                rows="20"
                paginator="true"
                paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                emptyMessage="..."
                lazy="true"
                rowIndexVar="rowIndex"
                rowStyleClass="#{(rowIndex mod 2) eq 0? '...' : '...'}">
        <p:ajax event="page"
                listener="#{[bean].onPageChange}"/> <-- load the next 25 items (successively)
        <p:ajax event="sort"
                listener="#{[bean].orderListing}"/>
        <p:column width="..."
                    headerText="..."
                    style="..."
                    sortBy="#{some_var.id}"
                    id="...">
            ...
        </p:column>
        [rest of columns]
    </p:dataTable>
</p:panel>

返回(僅作為大綱):

@PostConstruct
protected void init() {
    ...
    this.collectionOfObjects = new GenericLazyModel<CollectionOfObjects>(...);
}

//Method not called by ajax.
public void onPageChange(PageEvent event) {
    //Next 25 items
    this.collectionOfObjects = new GenericLazyModel<CollectionOfObjects>(...);
}

版本:primefaces 5.2、jsf-api 2.2.2、jsf-impl 2.2.2(更新最后兩個將非常昂貴)。

在這篇文章中有幾種可能性,但在仔細閱讀所有內容后,我還沒有設法解決錯誤。

commandButton/commandLink/ajax action/listener 方法未調用或輸入值未設置/更新

非常感謝大家!

最后,經過多次測試,我將PF的版本更新到了5.3,並且成功了。 更新到這個版本 5.3 時的錯誤不是來自應用程序本身,而是來自必須更新到 v4.0.0(至少)的 primefaces-extensions 庫。 如果有人在更新 PF 庫時遇到問題,請同時檢查 primefaces-extensions 的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM