我在我的view
文件夹中定义的网格上使用缓冲存储/无限滚动,而不用定义商店。
var grid = Ext.define('MyApp.view.metadata.ResultGrid' ,{
extend : 'Ext.grid.Panel',
alias : 'widget.resultgrid',
id : 'mygrid',
//columns, etc.
然后我使用
在Ext.application上实例化它{ xtype: 'resultgrid', width: '85%', hidden: true}
然后,在我的controller
我创建了我的store
...
var store = Ext.create('Ext.data.Store', {
storeId : 'resultsetstore',
model : model,
buffered : true,
pageSize : itemsPerPage, //50
autoLoad : true,
leadingBufferZone : 100,
remoteSort : true,
//etc.
...然后将我的商店重新配置到该控制器内的网格:
Ext.getCmp('mygrid').reconfigure(store);
Ext.getCmp('mygrid').show();
使用此方法,记录会加载到我的网格中,但这些记录仅限于pageSize
,我失去了无限滚动功能。
如果我在Controller中创建商店后立即创建随机网格,一切正常。但是,我希望将网格定义在其自己的文件夹中,并使用xtype
在我的应用程序中的特定位置(在一组面板/组件之间)创建它。
这有效:
var grid = Ext.create('Ext.grid.Panel', {
title : 'Test Data',
loadMask : true,
store : store,
这不是:
var grid = Ext.create('Ext.grid.Panel', {
title : 'Test Data',
loadMask : true,
//...
});
grid.reconfigure(store)
我无法在网格定义中使用第一种方法,因为在用户提交搜索表单之前,商店尚未定义。
有没有办法让我的网格在其自己的文件夹中定义,使用我的商店, 和 保持无限滚动功能,而无需将所有内容放入一个巨人文件?
答案 0 :(得分:0)
我在我的商店后面实例化我的网格,然后将其添加到我想要的面板中。
var app = Ext.getCmp('my_container');
app.add({
xtype: 'resultgrid', width: '85%', region: 'center', height: 400, collapsible: false, store: store
});