在ExtJS中获取组件

时间:2010-12-15 21:47:38

标签: extjs grid

我创建了一个这样的GridPanel:

grid = new xg.GridPanel({
    id: 'gridid',
    store: store,
    columns: [
    ...

稍后,我尝试获取元素,以便我可以将新数据加载到其中。在Sencha文档中,它声明loadData可用于GridPanel对象

alt text

所以我尝试了这个:

Ext.getCmp('gridid').loadData(store);

它会使控制台打印出这个错误:

Uncaught TypeError: Object [object Object] has no method 'loadData'

有趣的是,当我尝试

Ext.getCmp('gridid').getStore().loadData(store);

此错误消失,当前商店从网格中消失,但它仍然为空,新商店未加载。请帮忙!

更新:当我在console.log商店时,我看到对象内部的所有信息应该出现,但它没有在网格中呈现。

2 个答案:

答案 0 :(得分:3)

假设您传递到store函数的loadData与网格商店不同,请尝试以下操作:

var gridStore = Ext.getCmp('gridid').getStore();
gridStore.removeAll();
gridStore.add(store.getRange());

答案 1 :(得分:1)

我的Ext有点生疏,但我很确定loadData是传递数据本身(例如记录/对象数组),而不是商店。

你是如何申报商店的?是加载远程数据还是静态本地数据?

这里有一个使用loadData的例子:http://extjs.wima.co.uk/example/4

如果你正在使用远程数据,也许你只是在商店申报中缺少自动加载......