2017-10-12 4 views
0

私は、ExtJS 6.2、MemoryStore with Pagingを使用しており、リモートソースからデータを取得しようとしています。私がMemoryStoreを使用しているのは、リモートソースからデータを取得するためにWebSocketを使用しているからです。 表示する記録が1000個あり、ページあたり10個のアイテムを視覚化したいとします。それは私が代わりに直接ストアにロードのプロキシにデータを設定しなければならなかった仕事を得るためにExtJS 6.2 MemoryStoreでページングを使用する場合のloadPageを理解します。

function (message) { 
    received_data = JSON.parse(message.data); 
    me.store.getProxy().setData(received_data.data); 
    me.store.loadPage(received_data.data.page); 

:私はのWebSocketからこのコールバックでの最初のページを視覚化したいときに物事は動作します。 received_data.data.pageが1の場合、すべて正常です。今私は2ページreceived_data.dataに切り替えると

{limit: 10, page: 1, start: 0, total: 1000, items: Array(10)} 

問題が発生:received_data.dataは次のようになりますJSONが含まれてい

{limit: 20, page: 2, start: 10, total: 1000, items: Array(10)} 

しかし、グリッドは何も表示されません。ページングツールバーに「No data to display」というメッセージが表示され、ストアが奇妙に見えます。つまり、データがないということです。 store.getData()およびstore.getCount()はアイテムと0を返しません。

解決策は、サーバーからすべてのデータを取得して、最後の1つを表示し、最後のページを表示するまでです。私は小さなを取得するためにページングを活かしされないため、実行可能な解決策ではありません

{limit: 20, page: 2, start: 10, total: 1000, items: Array(20)} 

期待としてではなく、もちろん動作します:2ページの場合、私は、サーバーからJSONを取得することができます全体のデータセットではなく、データのチャンク。

問題は、プロキシがどのように動作しているのかということです。すなわち、page,startおよびlimitのパラメータを使用してストアに入れる実際のデータを計算します。私はそれがフードの下でどのように機能するかについて十分に分かっていないので、私はそれが私が望むように行動するのを苦労している。だから問題は、プロキシにストアに正しいページデータセットを取得させるにはどうすればいいですか?

答えて

0

私は数週間苦労しました。私が質問を投稿してから10分後、私は自分自身で解決策を見つけました、pffffff。この問題は基本的に開始パラメータによるものです。常に0にする必要があるので、ストアを再ロードするときにloadPageメソッドに余分なパラメータを追加する必要があります。

me.store.loadPage(received_data.data.page, {start: 0});

これは私のためのトリックを行います。

関連する問題