Extjs网格无法使存储缓冲区正常工作
我有一个很大的数据集(超过8万条记录)。所以我试图实现缓冲区,但我无法让它工作。如果我包括缓冲配置,我得到的错误对象不支持此属性。当我删除它时,它可以正常工作,但加载数据当然要花很长时间 这是我的密码Extjs网格无法使存储缓冲区正常工作,extjs,Extjs,我有一个很大的数据集(超过8万条记录)。所以我试图实现缓冲区,但我无法让它工作。如果我包括缓冲配置,我得到的错误对象不支持此属性。当我删除它时,它可以正常工作,但加载数据当然要花很长时间 这是我的密码 Ext.Loader.setConfig({ enabled: true, disableCaching: false }); Ext.require(['Ext.data.*', 'Ext.grid.*', 'Ext.grid.plugin.BufferedRender
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();
只是不知道我做错了什么。感谢您对解决此问题的帮助。是否有任何理由从服务器获取所有数据 我建议使用所有的优点,速度是第一位的(还有一些缺点)。如果您选择使用无限网格,它将运行良好。事实上,无限网格背后的基本思想是(换句话说,数据分页)
过滤在这种情况下不会出现任何问题,请参阅。它通常由服务器处理,而服务器是为完成此类任务而构建的。您使用的是ExtJS 4.2吗?是的。在调试错误时,我注意到的另一件事是在线filterBy()。如果删除过滤器,则不再看到错误。但是缓冲区仍然不起作用,我确实需要过滤器,thx。我把它呈现为一个对话框列表,用户可以在其中选择多个项目。无限滚动看起来比分页更好。此外,我不确定页面过滤是否对整个商店有效。@lense:我用你的新输入澄清了我的答案。谢谢Peter Ivan,我正在寻找列过滤。但是这个例子很有用,我会尝试一下。