主面数据表全局过滤器正在重新排序元素

时间:2016-02-29 21:41:52

标签: jsf jsf-2 primefaces

我正在使用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"
 />

传递给execute的对象不是正确的回调对象,而是仍然引用旧的未过滤列表中相同位置的回调对象。

1 个答案:

答案 0 :(得分:0)

看起来这是一个错误。似乎没有任何解释,或者没有理由,我已经多次报告没有任何解决方案。我没有时间在我的最后研究它,但我会给任何感兴趣的人Bug Report

提供链接