2016-08-23 20 views
1

フィルタとページネーションを持つp:datatableを使用しています。どちらもうまく動作しますが、最初にフィルタをかけて2番目の結果ページに移動すると、フィルタが削除され、元のデータセットの2番目のページが表示されます。私のテーブルは次のようになります:Primefaces datatableページネーションリセットフィルタ

<p:dataTable value="#{bean.products}" var="product" 
     paginator="true" paginatorPosition="bottom" rows="5" 
     filteredValue="#{bean.filteredProducts}" 
     rowKey="#{product.prdctId}"> 
    <p:ajax event="sort" skipChildren="false" /> 
    <p:column headerText="Description" filterBy="#{product.description}" filterMatchMode="contains" 
      sortBy="#{product.prdctId}"> 
     <h:outputText value="#{product.description}" /> 
    </p:column> 

    (other columns) 

</p:dataTable> 

アイデアはありますか?

Primefaces 5.2、JSF 2.0.3

編集の使用:より多くのビットを検索した後、私は同じ問題を扱うanother postを見つけましたが、それは答えませんでしたが。

+0

はグローバルフィルタでそれをテストし、それが動作します。私はクーミン固有のフィルタを持っていません – Apostolos

+1

私は、列フィルタを扱うためのロジックに何か間違っていると思っています。私はPF 6.0にアップグレードし、問題がまだ再現可能であることを確認しました。私のテーブルを怠惰なローディングに変更し、[ショーケースの例](http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml)に従って、カスタムDataModelを使用しても動作しました。理想的ではありません。私が作業しているデータセットはすでにキャッシュされているため、遅延ロードの必要はありませんが、動作し、パフォーマンスに大きな違いはありません。 – bendicott

答えて

0
<p:dataTable value="#{bean.products}" var="product" 
    paginator="true" paginatorPosition="bottom" rows="5" 
    filteredValue="#{bean.filteredProducts}" 
    rowKey="#{product.prdctId}"> 
<p:ajax event="sort" skipChildren="false" /> 
<p:column headerText="Description" filterBy="#{product.description}" filterMatchMode="contains" 
     sortBy="#{product.prdctId}"> 
    <h:outputText value="#{product.description}" /> 
</p:column> 
(other columns) 

あなたのDataTableに追加:あなたのボタンでwidgetVar="productTable"

は、これを追加します。oncomplete="PF('productTable').clearFilters();"

+0

問題は全体的にページネーションがフィルタをリセットすることです。どのように手動でフィルタリストのヘルプをクリアするのですか? – bendicott

関連する問題