2009-11-26 49 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