我的问题与此非常相似: 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。
答案 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()"