我有一个大型数据集(超过80k的记录)。所以我试图实现缓冲,但我无法让它工作。如果我包含缓冲配置,我收到错误对象不支持此属性。当我删除它时,工作正常但当然需要永远加载数据。
这是我的代码
Ext.Loader.setConfig({
enabled: true,
disableCaching: false
});
Ext.require(['Ext.data.*', 'Ext.grid.*',
'Ext.grid.plugin.BufferedRenderer', 'Ext.ux.grid.FiltersFeature']);
Ext.define('Borrower', {
extend: 'Ext.data.Model',
fields: [{
name: 'Name',
type: 'string'
}, {
name: 'Num',
type:
'string'
}]
});
Ext.onReady(function () {
var store = Ext.create('Ext.data.Store', {
autoLoad: false,
model: 'Borrower',
pageSize: 100,
buffered: true, // getting error object doestn support this property in extjs-all-debug.js
proxy: {
type: 'rest',
url: 'borrBuff.xsp/byName',
reader: {
type: 'json',
root: 'items'
}
}
});
var filters = {
ftype: 'filters',
encode: false,
local: true
};
var grid = Ext.create('Ext.grid.Panel', {
id: 'testgrid',
store: store,
features: [filters],
plugins: 'bufferedrenderer',
columns: [{
text: 'Borr Name',
dataIndex: 'Name',
filterable: true
}, {
text: 'Number',
dataIndex: 'Num'
}]
});
})
在按钮上单击窗口中打开网格
var grid = Ext.getCmp('testgrid');
var win = Ext.create('Ext.Window', {
title: 'Grid Filters Example',
height: 400,
width: 700,
modal: true,
layout: 'fit',
items: grid
}).show();
grid.getStore().load();
无法弄清楚我做错了什么。感谢您解决此问题的任何帮助。
答案 0 :(得分:0)
有没有理由从服务器获取所有数据?
我建议将data paging与所有专业人员一起使用,速度是第一个(也有一些缺点)。如果您选择使用无限网格,它将运行良好。事实上,无限网格背后的基本思想是fetching data in chunks(换句话说就是数据分页)。
过滤在此方案中没有任何问题,请参阅sample。它通常由服务器处理,服务器是为完成这类任务而构建的。