我有一些REST数据服务:
[{id:20},{id:16},{id:14},{id:11},{id:9},{id:8}]
请求(获取id小于15的数据)
?fromId=15&count=3
响应
[{id:14}, {id:11},{id:9}]
请求(没有fromId表示获取最后的数据)
?count=3
响应
[{id:20},{id:16},{id:14}]
有没有办法在这个API中使用BufferedStore(我在gridpanel中使用它)? 主要问题是如何使用降序fromId来生成商店请求。
UPD : 我必须使用这些数据获得无限的可滚动网格面板。但不知道如何为它配置代理和存储。 是否有可能或我应该覆盖一些方法来手动填写请求?
UPD商店:
Ext.define('Admin.store.OrderStore', {
extend: 'Ext.data.BufferedStore',
model: 'Admin.model.Order',
alias: 'store.order',
autoLoad: true,
autoDestroy: true,
remoteSort: true,
remoteFilter: true,
proxy: {
type: 'rest',
url: 'api/order',
limitParam: 'size',
startParam: 'fromId',
extraParams: {
filter: {}
},
reader: {
type: 'json',
rootProperty: 'data',
totalProperty: 'total'
}
}
});
答案 0 :(得分:0)
设置pageSize,这将限制从服务器请求的行数(大小写)。每次请求都会跳30次。
您还可以使用属性leadingBufferZone
设置缓冲区Ext.define('Admin.store.OrderStore', {
extend: 'Ext.data.BufferedStore',
model: 'Admin.model.Order',
alias: 'store.order',
autoLoad: true,
autoDestroy: true,
remoteSort: true,
remoteFilter: true,
pageSize: 10,
leadingBufferZone: 20,
proxy: {
type: 'rest',
url: 'api/order',
limitParam: 'size',
startParam: 'fromId',
extraParams: {
filter: {}
},
reader: {
type: 'json',
rootProperty: 'data',
totalProperty: 'total'
}
}