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)"/>
答案 0 :(得分:5)
你不能(PrimeFaces 3.5)直接将数据表过滤器与JSF bean绑定,因此在更新整个组件时不会保留它们。
但是如果你在datatable小部件上调用filter(),数据将从服务器重新加载,而不重新渲染整个数据表组件(因此将保留过滤器)
<p:dataTable .... widgetVar="myTable"> ...</p:dataTable>
<p:commandButton action="#{myBean.doSth}" .... oncomplete="myTable.filter()"/>