Jsf prime faces数据表全局筛选器正在对元素重新排序
我使用的是PrimeFaces5.2。我使用全局过滤器。每行还有一列用于选择操作。当过滤处于启用状态,并且用户过滤了几行时,我注意到,当我单击该行上的按钮时,返回的行与所选行不同。所选行对应于未筛选状态之前的行。 Primefaces/JSF为每一行分配一个id,例如“datatable:row\u number:element”。行号会随着筛选的进行而更新,但当我对筛选行调用操作时,所选行行号是选择前的行。请参见下面的代码示例Jsf prime faces数据表全局筛选器正在对元素重新排序,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我使用的是PrimeFaces5.2。我使用全局过滤器。每行还有一列用于选择操作。当过滤处于启用状态,并且用户过滤了几行时,我注意到,当我单击该行上的按钮时,返回的行与所选行不同。所选行对应于未筛选状态之前的行。 Primefaces/JSF为每一行分配一个id,例如“datatable:row\u number:element”。行号会随着筛选的进行而更新,但当我对筛选行调用操作时,所选行行号是选择前的行。请参见下面的代码示例 <p:dataTable value="#{workerR
<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的对象不是正确的回调对象,它仍然引用旧的未筛选列表中相同位置的回调对象。看起来这是一个bug。似乎没有任何解释,也没有任何理由,我已经看到过很多次没有任何解决方案的报道。我没有时间研究它,但我会给任何感兴趣的人提供链接如果你指向错误报告,至少指向正确的报告。GoogleCode(通常,不仅仅是PrimeFaces)是关闭的(在归档模式下)。如果你读了最后两条评论,你有一个“部分”解决方案。当前问题列表处于GitHubIt状态。它可能处于存档模式,但仍然是正确的。这是我遇到的问题。为什么你认为它不是正确的?我已经尝试了部分解决方案(比如实现Serializable等等)。。他们对medid不起作用你试过没有filteredValue吗?它在没有filteredValue的情况下起作用。但是,由于表中的条目太多,用户更容易筛选然后单击操作。