2

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

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

谢谢

<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>

和对话框的确认按钮

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

1 回答 1

5

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

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

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

<p:commandButton action="#{myBean.doSth}" .... oncomplete="myTable.filter()"/>
于 2013-09-12T12:45:47.437 回答