我正在尝试在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
});
有人知道哪里出了问题吗?
谢谢你,谢谢
1条答案
按热度按时间4dbbbstv1#
正如Peter Koltai在评论中提到的,
Ext.data.BufferedStore
不能用于分页,但Ext.data.Store
可以。