2

ExtJs では、リモート データをページ グリッドに簡単に表示できます。ただし、これを実現するには、サーバー側でページングがサポートされている必要があります。さらに、ページ グリッドでのローカルの並べ替えとフィルター処理は、現在のページの要素のみをフィルター処理するため、役に立ちません。一貫した結果を得るには、リモートでのフィルタリングと並べ替えが必要です。無限スクロール グリッドのバッファー ストアについても、同じことが当てはまります。

しかし、これが常に正しい解決策であるとは限りません。特に、リモート データの取得に時間がかかる場合は、フィルタリングに関するユーザー エクスペリエンスが低下します。また、JavaScript 関数を使用してフィルター処理や並べ替えを行うことはできません。

解決策は、ExtJ にすべてのデータを一度に読み取らせ、そのデータのローカル コピーを使用してデータのフィルター処理と並べ替えを行うことです。データセット全体の中間ストアと、データを表示するためにグリッドにリンクされたメイン ストアが必要です。しかし、これには、メイン プロキシがデータ ソースとして中間ストアを持っている必要があり、私が理解している限り、プロキシはデータ ソースとして別のストアを持つことはできません。

誰かがこの問題を解決する方法を知っていますか? スケッチされたソリューションが実行可能かどうかはわかりませんが、必要なのは、リモートの .json データソースを持ち、ローカルのページング、フィルタリング、および並べ替えを使用することを何とか調整することです。

どうすればこれを達成できますか?

4

6 に答える 6

2

タイトルはExtJs - paging and buffering grid based on remote data WITHOUT remote paging and filteringの本当の懸念を表していますが、質問の詳細は誤解を招くものです。

実際、これに対する実際の解決策は次のとおりです。bufferedストアを使用する代わりに、Bufferedrenderer.

BufferedRenderer表示のみに影響し、ストアの動作には影響しません。

  • ローカルでの並べ替えと並べ替えバッファ ストアではローカルでの並べ替えと並べ替えができませんが、このソリューションではローカルでの並べ替えと並べ替えに制限はありません。
  • 編集sync: バッファリングされたストアは、行の挿入またはサーバーとのストアの結合をサポートしていません。BufferedRenderer を使用してグリッドに表示される通常のストアには、これらの制限はありません。

Sencha ブログに BufferedRenderer の優れた説明があります。

制限: ローカルの並べ替えとフィルターを使用して実装できるのは、無限スクロール ソリューションのみです。ページングは​​常に (私の知る限り) サーバー上で実行する必要があります。また、リモート ページングは​​、リモート フィルタリングとソートも意味します。

于 2014-03-14T10:02:36.457 に答える