我想使用myGridPanel.reconfigure(store,columns)
重新配置GridPanel。我无法使用metachange事件,因为我需要单独调用元数据(后端约束)。
我调用了元数据,我收到了我需要的元数据,然后使用一组新字段和一个新代理(新网址)创建了一个新模型。我将模型设置为现有存储(绑定到我的gridPanel)然后调用store.loadPage(1)(因为我使用bufferedStore)和myGridPanel.reconfigure(store,meta.columns)。
我的问题是store.loadPage(1)没有发生。我不知道自己错过了什么......
我的商店看起来像这样:
Ext.define('Foo.store.Results', {
extend: 'Ext.data.BufferedStore',
requires: [
'Foo.model.ResultRecord'
],
config: {
remoteFilter: true
},
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
pageSize: 50,
storeId: 'Results',
autoLoad: false,
model: 'Foo.model.ResultRecord',
leadingBufferZone: 50,
trailingBufferZone: 10
}, cfg)]);
}
});
我创建了一个这样的新模型:
createResultModel: function(url,fields) {
console.log('createResultsModel called');
return Ext.define('Foo.model.ResultsModel'+Ext.id(), {
extend: 'Ext.data.Model',
fields: fields,
proxy: {
type: 'ajax',
url: url,
useDefaultXhrHeader: false,
reader: {
type: 'json',
rootProperty: 'data'
}
}
});
}
我改变模型并重新配置网格:
myStore.setModel(me.createResultModel('resources/data/results.json',meta.fields));
myStore.loadPage(1);
resultsGrid.reconfigure(myStore,meta.columns);
谢谢!
答案 0 :(得分:0)
似乎调用了store.load(),但是错误的网址....我不知道这是否是所需的功能,但似乎旧模型的代理设置为商店,当我设置新模型时,代理仍然是旧的。