ExtJS分页/分页在页面加载时加载所有记录

hrirmatl  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(149)

我正在尝试在ExtJS应用程序中为网格设置分页。假设我想显示每页30条记录,我总共有35条记录。无论如何,当我访问视图时,网格总是在第一页加载所有35条记录,尽管分页栏显示存在两个页面(见图)。

分页栏中的导航按钮不起作用,例如,当我点击“下一页”按钮时,我得到以下错误:

Uncaught TypeError: store.nextPage is not a function
    at constructor.moveNext (ext-all-debug.js:185314:23)
    at Object.callback (ext-all-debug.js:8705:32)
    at constructor.fireHandler (ext-all-debug.js:144259:17)
    at constructor.onClick (ext-all-debug.js:144241:16)
    at constructor.fire (ext-all-debug.js:20731:42)
    at constructor.fire (ext-all-debug.js:34336:27)
    at constructor.publish (ext-all-debug.js:34296:28)
    at constructor.publishDelegatedDomEvent (ext-all-debug.js:34318:14)
    at constructor.doDelegatedEvent (ext-all-debug.js:34361:16)
    at constructor.onDelegatedEvent (ext-all-debug.js:34349:18)

点击“最后一页”按钮不会引发错误,但它只是加载相同的35条记录。
当我检查我的Web服务器日志时,我可以看到,当我访问视图时,我的应用程序不仅请求记录的第一页,而且请求所有记录,这毫无意义:

[20/Sep/2023:10:09:55 +0200] "GET /api/requests/?page=1 HTTP/2.0"
[20/Sep/2023:10:09:56 +0200] "GET /api/requests/?page=2 HTTP/2.0"

我检查了Django REST Framework生成的/api/requests/?page=1的API输出,它返回

{
    "count": 35,
    "next": "https://xxx.xxx/api/requests/?page=2",
    "previous": null,
    "results": [
        {
            ### some data in here ###
        },
    ]
}

results数组包含30个元素。
这是我的店

Ext.define('MainHub.store.requests.Requests', {
  extend: 'Ext.data.BufferedStore',
  storeId: 'requestsStore',

  requires: [
    'MainHub.model.requests.Request'
  ],

  model: 'MainHub.model.requests.Request',

  leadingBufferZone: 20,
  pageSize: 30,

 autoload{
    type: 'ajax',
    url: 'api/requests/',
    startParam: false,
    limitParam: false,
    noCache: false,
    enablePaging: true,
    reader: {
      type: 'json',
      rootProperty: 'results',
      totalProperty: 'count'
    }
  },
  remoteFilter: true
});

有人知道哪里出了问题吗?
谢谢你,谢谢

4dbbbstv

4dbbbstv1#

正如Peter Koltai在评论中提到的,Ext.data.BufferedStore不能用于分页,但Ext.data.Store可以。

相关问题