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

时间:2015-06-08 13:52:27

标签: ajax jsf primefaces datatable

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

我有一个dataTable,其中包含表格中每个条目/行的“打开”按钮(commandButton),点击该按钮,dialog将会打开。我在对话框中有一个表单,我可以更新并保存。保存更改后,我将返回dataTable关闭我所在的对话框,更新表格中条目对话框中发生的保存结果(单击“打开”)打开dialog)。

如果我保存dialog的结果并使用update属性更新表条目上的保存结果,则可以正常工作。但是,如果首先过滤了dataTable,然后打开了dialog,那么update不会导致更新表条目,直到我实际刷新/重新加载页面

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

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

在我提到的另一个问题中推荐的解决方案在我的案例中似乎没有任何影响。

有什么建议吗?

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

2 个答案:

答案 0 :(得分:0)

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

在对话框中,必须使用filteredValue。 从这里开始:http://www.primefaces.org/docs/vdl/4.0/primefaces-p/dataTable.html

答案 1 :(得分:0)

我错误地提到id代替widgetVar。这样:

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

会正常工作。

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

我错误地尝试了这种方式:

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