2009-11-26 72 views
1

我被一个看似简单的问题困住了:将数据附加到我的ExtJS Gridpanel。我有一个初始数据设置的网格面板。将数据附加到GridPanel的ExtJS

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 

这是所有工作fine.Now我想新的数据周期性地追加到此的GridPanel(存在被生成的数据的阵列的函数)。 但是我不能得到这个工作。尝试datastore.add,但无济于事。

任何想法?

回答

3

你传递给datastore.add的是什么?

试试这个:

datastore.add(new datastore.recordType({ 
    Col1: 'data3', 
    Col2: 'data4' 
})); 
+1

我有相同的设置水曲柳但不知何故datastore.recordType是不确定的。这是为什么? – applepie 2012-07-24 20:45:14

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] 
     }) 
    ); 
} 
+0

什么是recordType以及它是如何定义的? – applepie 2012-07-25 00:53:04

1

你应该改成这样:

datastore.add(new datastore.recordType(['data3', 'data4'])); 
+0

什么是recordType,它是如何定义的? – applepie 2012-07-25 00:52:47