問題タブ [primefaces-datatable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
131 参照

jsf - フィールド Prime Faces データ テーブルを遅延読み込みで並べ替えた後、フィルターが null になるのはなぜですか?

私は多くの質問と多くを検索し、多くのことを試しました。以下に、問題を生成するためのスニペット手順を示します。最初にフィルター値を任意の列に適用してから、テーブル インターフェイスに存在する任意の列フィルター値に並べ替えを適用しますが、ロード メソッドfilters.isEmpty() は true です。

サービス.java

問題を再現するために必要な小さなスニペットのみを示しました。このコードでは、最初に適切なクエリ リスト (filters.isEmpty() = false) を表示するフィルターを適用しますが、filters.isEmpty() = true をログに記録した後、ロード メソッドでテーブルから適用される並べ替えの場合、データ テーブルに存在するフィルター処理された値でも。私はプライムフェイスバージョン6.2とjsf 2.2を使用しており、hqlクエリを使用してMySQLデータテーブルからデータを取得しています

事前に感謝します。

0 投票する
1 に答える
274 参照

jsf - FilterMeta と等しくない値のフィルタリング

PrimefacesDatatableを遅延読み込みに移行しようとしていますが、フィルタリングにいくつか問題があります。non-lazyDatatableでは、フィルタリングはデータベースからいくつかの にすべての値をロードしArrayList、Javastream()などで必要に応じてそれらをフィルタリングするだけで構成されていました。しかしLazyDataModel、フィルタはすべてFilterMetaオブジェクトとして指定する必要があり、BD へのクエリを作成するために使用されるため、必要なデータのみが DB からロードされます。

いいですね。単純なフィルタリングは、次のようなもので非常に簡単に実装できます。

より複雑なフィルターを実装したいときに問題が発生します。たとえば、等しい値ではなく異なる値をフィルタリングすることは、不可能に思えます。可能なMatchMode値を見ると、不等演算子はありません。可能な値は次のとおりです。

value>52 つの異なるフィルターを組み合わせて動作value<5を模倣するなど、論理的な体操を行うこともできますがvalue!=5、非常に汚いコードのように見えます。

ここで何が欠けているかについて何か考えはありますか? 明らかな解決策は、何らかの種類のnot()またはinvert()メソッドを実装する FilterMeta ですが、同様のものは見つかりませんでした。

ありがとう!