2016-02-29 47 views
0

我正在使用primefaces 5.2。我使用全局過濾器。每一行也有一列用於選擇操作。當過濾打開,並且用戶過濾了幾行時,我注意到,當我單擊按鈕時,在該行上,返回的行與選定的行不是同一行。所選行對應於未過濾狀態之前的行。 Primefaces/JSF爲每行分配一個id,如「datatable:row_number:element」。 row_number隨着過濾的進行而更新,但是當我在已過濾的行上調用一個操作時,所選行row_number就是選擇之前的行。請參閱下面的代碼示例素數面數據表全局過濾器重新排序元素

<p:dataTable value="#{workerRotationPage.callbackList}" 
       filteredValue="#{workerRotationPage.filteredList}" 
       var="callback" 
       widgetVar="callbackTable" 
       styleClass="custom-datatable waitingCall" 
       paginator="true" 
       paginatorPosition="top" 
       paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
       rowsPerPageTemplate="10,20,50" 
       selection="#{workerRotationPage.callbackWorker}" 
       selectionMode="single" 
       rowKey="#{callback.id}" 
       rows="10"> 
.... 
<p:commandButton 
    icon="fa fa-undo" 
    value="Unassign" 
    action="#{workerRotationPage.execute('unassignCallbackWorker',callback)}" 
    title="Unassign Worker #{callback.worker.person.formattedFirstLastName}" 
    update=":mainForm:rotationTableId :mainForm:naworkerTableId :mainForm:assignPanelId" 
/> 

傳遞到執行的對象不是正確的回調對象,而它仍然是指回調對象在舊的未過濾列表中的相同位置。

+0

您是否嘗試過不使用filteredValue? – Kukeltje

+0

它沒有filteredValue工作。但是,由於表格中的條目太多,用戶更容易過濾,然後單擊操作。 –

回答

0

看起來這是一個錯誤。似乎沒有解釋,或沒有理由,我也看到它多次報告沒有任何解決方案。我沒有時間在我的研究結果上進行研究,但我會將鏈接提供給任何感興趣的人Bug Report

+0

如果您指向一個錯誤報告,至少指向正確的錯誤報告。 GoogleCode(通常不僅用於PrimeFaces)已關閉(在歸檔模式下)。如果你閱讀了最後兩條評論,你就有一個「部分」解決方案。當前的問題列表在GitHub – Kukeltje

+0

它可能處於歸檔模式,但它仍然是正確的。這是我遇到的問題。你爲什麼認爲這不是正確的?我已經嘗試了部分解決方案(比如實現Serializable等)。它們不適合我 –