【问题标题】:Primefaces Datatable lost text in Filter field after datatable update数据表更新后,Primefaces 数据表在过滤器字段中丢失文本
【发布时间】:2013-09-12 09:06:39
【问题描述】:

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)"/>

【问题讨论】:

  • 给了我们代码片段,所以我们可以帮助你

标签: jsf-2 primefaces


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2012-11-13
    • 2013-11-20
    • 2015-05-24
    • 2014-01-04
    • 1970-01-01
    • 2013-07-30
    • 2013-08-01
    • 2012-07-23
    相关资源
    最近更新 更多