Primefaces Datatable在数据表更新后丢失了Filter字段中的文本

时间:2013-09-12 09:06:39

标签: jsf-2 primefaces

JSF-2.1 Primefaces 3.5我有一个带过滤器的数据表。我只需要更新数据表上的数据(没有Filter)。因为每当我更新数据表时,我都会丢失过滤字段中的文本。

我有一个对话框,确认按钮位于数据表的表单之外 我该如何解决?

由于

<h:form id="form">
<p:dataTable id="cm_dataTable_#{cc.clientId}" widgetVar="cm_dataTableWidget_#{cc.clientId}" var="adr" value="#{cc.attrs.addresses}"rowIndexVar="rowIndex" filterDelay="1000" binding="#{cc.dataTable}" rowKey="#{adr.mailingadresseid}" selection="#{mailingadressenBean.selectedAddresses}">           
<p:column id="colistuploadmeinedaten" filterBy="#{adr.firstname}" filterMatchMode="exact" filterOptions="#{mailingadressenBean.siTrueFalse}" sortBy="#{adr.istuploadmeinedaten}">
    <h:outputText value="#{adr.anrede}" />
</p:column>
</p:datatable>
</h:form>

和Dialog的确认

<p:commandButton id="dm_yesBttn" value="#{langs.yes}" update=":form" actionListener="#{deleteMailingadresseBean.delete}"                    oncomplete="hideDeleteDialog(xhr, status, args)"/>

1 个答案:

答案 0 :(得分:5)

你不能(PrimeFaces 3.5)直接将数据表过滤器与JSF bean绑定,因此在更新整个组件时不会保留它们。

但是如果你在datatable小部件上调用filter(),数据将从服务器重新加载,而不重新渲染整个数据表组件(因此将保留过滤器)

<p:dataTable .... widgetVar="myTable"> ...</p:dataTable>

<p:commandButton action="#{myBean.doSth}" .... oncomplete="myTable.filter()"/>