我遇到了一个看似简单的问题:将数据附加到我的ExtJS Gridpanel。我有一个网格面板,其中包含一些初始数据。
var myData = [['data1','data2']];
var myReader = new Ext.data.ArrayReader({}, [
{name: 'Col1'},
{name: 'Col2'},
);
var datastore = new Ext.data.Store({
data: myData,
reader: myReader
});
grid = new Ext.grid.GridPanel({
store: datastore,
...
etc
这一切都运行正常。现在我想定期将新数据附加到此gridpanel(有一个生成数据数组的函数)。 但是,我不能让这个工作。尝试过datastore.add,但无济于事。
有什么想法吗?
答案 0 :(得分:3)
你传递给datastore.add的是什么?
试试这个:
datastore.add(new datastore.recordType({
Col1: 'data3',
Col2: 'data4'
}));
答案 1 :(得分:1)
你应该改为:
datastore.add(new datastore.recordType(['data3', 'data4']));
答案 2 :(得分:0)
作为add方法的参数,您传递的数据必定存在问题。 Firebug中是否出现任何错误?如果是这样,它是什么?
add方法将Ext.data.Record对象数组作为其参数。因此,如果您要将数据数组添加到网格中,则需要先将每个数组转换为记录格式,然后才能将其传递给存储。例如:
var new_data = [['data3','data4'], ['data5','data6']];
for (var i = 0, len = new_data.length; i < len; i++) {
datastore.add(new datastore.recordType({
Col1: new_data[0],
Col2: new_data[1]
})
);
}