Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf prime faces数据表全局筛选器正在对元素重新排序_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf prime faces数据表全局筛选器正在对元素重新排序

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

我使用的是PrimeFaces5.2。我使用全局过滤器。每行还有一列用于选择操作。当过滤处于启用状态,并且用户过滤了几行时,我注意到,当我单击该行上的按钮时,返回的行与所选行不同。所选行对应于未筛选状态之前的行。 Primefaces/JSF为每一行分配一个id,例如“datatable:row\u number:element”。行号会随着筛选的进行而更新,但当我对筛选行调用操作时,所选行行号是选择前的行。请参见下面的代码示例

 <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的情况下起作用。但是,由于表中的条目太多,用户更容易筛选然后单击操作。