2016-05-26 6 views
1

Extjsには、ページ区切り機能を持つグリッドパネルがあります。ただし、サーバーからすべてのデータを受け取った後でのみページングが機能すると思います。 (私がここに間違っているなら、私を修正してください)。私の場合、サーバーからの合計データは、サイズが20メガバイトに達します。これは、ajaxコール(ブラウザはこの多くのデータをロードすることになります)をロードしたくありません。ここに私が必要なものがあります。 、Djangoとextjsによるページ分割

  1. ページングツールバーの[次へ]ボタンをクリックした後、次の1MBのデータを取得するために、AJAX呼び出しを行い、このデータ
  2. 内のページのロード
  3. 使用のExtJSのページネーションで(約)1メガバイトのデータを取得しますグリッド
  4. にそれを表示する再び
  5. このデータ内のExtJSページネーションを使用し、そうで.....

は、私が目を達成する方法を提案してください。 EXTJSにこれを行うための既存の方法があるか、存在しています。あなたの助けに感謝。ありがとう。

PS:Djangoは

答えて

0

私のバックエンドサーバであるしかし、私は改ページのみをサーバーからすべてのデータを受信した後にうまくいくと思います。

あなたはどう思いますか?

ExtJSグリッドページネーションはページサイズを定義して(100としましょう)、最初の100エントリが必要であることをサーバーに伝えます。 「次のページ」をクリックすると、2番目の100エントリがサーバーからフェッチされます。

ページ分割が期待通りに機能するためには、サーバーAPIはstartParam,pageParamおよびlimitParamを理解する必要があります。

+0

ご迷惑をおかけしていただきありがとうございます。私はこのアプローチで作業します。そして1つのフォローアップの質問。任意の時点でグリッドストアをフィルタリングすると、フィルタは現在の100個のエントリにのみ適用されますが、正しいですか? – CoooolllYuvee

+0

[リモートフィルタ](http://docs.sencha.com/extjs/6.0/6.0.1-classic/#!/api/Ext.data.AbstractStore-cfg-remoteFilter)を使用すると、フィルターが変更されるたびにサーバーを呼び出して保存し、フィルターの対象となる最初の100項目を収集するか、クライアント側の100レコードだけをフィルターに掛けるローカルフィルターを使用できます。リモートフィルタは、サーバAPIが対応するパラメータをサポートする必要があります。今回は、['filterParam'](http://docs.sencha.com/extjs/6.0/6.0.1-classic/#! /api/Ext.data.proxy.Server-cfg-filterParam)。 – Alexander

+0

ありがとうございます。まさに私が探していたもの。 – CoooolllYuvee