我有一个datable,其中包括primefaces的过滤器功能。可以在表上执行某些操作(例如,编辑)。在使用ajax完成用户操作之后,将更新datable。如果不过滤数据表,它将直接更新表并运行良好,不幸的是,如果我使用它并对其进行编辑,则不会。
这就是我的数据表的样子:
<p:dataTable id="dataTable" var="row" value="#{bean.value}" filteredValue="#{bean.filteredValue}" paginator="true" rows="25" paginatorPosition="bottom" rowKey="${row.id}" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}" editable="true">
和触发更新的按钮
<p:commandButton value="Save" actionListener="#{bean.save}" update=":form"/>
更新后 的数据表 ,你必须调用它的客户端的filter()方法。
filter()
<p:dataTable widgetVar="dataTableWidgetVar" id="dataTable" var="row" value="#{bean.value}" filteredValue="#{bean.filteredValue}" paginator="true" rows="25" paginatorPosition="bottom" rowKey="${row.id}" editable="true"> <p:commandButton value="Save" actionListener="#{bean.save}" update=":form" oncomplete="PF('dataTableWidgetVar').filter()"/>
对于早于5的PrimeFaces版本,应使用
<p:commandButton value="Save" actionListener="#{bean.save}" update=":form" oncomplete="dataTableWidgetVar.filter()"/>