Ajax 过滤后从模态更新数据表

Ajax update of datatable from a modal after filtering

我的问题与此非常相似: Ajax update doesn't work, when using filter on datatable (JSF, Primefaces).

我有一个 dataTable,table 中的每个 entry/row 都有一个 "Open" 按钮(一个 commandButton),点击后, dialog 将打开。我在对话框中有一个可以更新和保存的表单。保存更改后,我将返回 dataTable 关闭我所在的对话框,更新 table(其 "Open" 被点击打开 dialog).

如果我保存 dialog 的结果并使用 update 属性更新 table 条目上的保存结果,它工作正常。但是,如果首先过滤 dataTable 然后打开 dialog,那么 update 不会导致更新 table 条目,直到我真正 refresh/reload页面。

oncomplete="PF(':parentForm:dataTableVar').filter()"

oncomplete="PF(':parentForm:dataTableVar').clearFilters()"

我引用的另一个问题中推荐的解决方案似乎对我的情况没有任何影响。

有什么建议吗?


我使用 JSF v2.1.19 和 PrimeFaces v5.1。

需要在dataTable的filteredValue属性中标记列表。 例如:<p:dataTable filteredValue="#{bean.anotherListWithTheSameType}" />

在dialog中,需要filteredValue。 来自这里:http://www.primefaces.org/docs/vdl/4.0/primefaces-p/dataTable.html

id 代替 widgetVar 是我的错误。这个:

oncomplete="PF('myTableWidget').filter()"
如果有问题的 dataTable 看起来像

就可以正常工作:

<p:dataTable id="myTable" widgetVar="myTableWidget"...

我这样试错了:

oncomplete="PF('myTable').filter()"