2010-08-22 68 views
1

當我用一些數據初始化ArrayStore時,我可以插入新記錄,並且正確顯示所有內容。但是,如果我用一個空數組初始化ArrayStore,那麼當插入的第一條記錄工作時,每個後續插入都會覆蓋網格中的第一條記錄。 這似乎是一個簡單的問題,但我無法找到一種工作方式將網格初始化爲空。使用空數組初始化GridPanel和ArrayStore不起作用

那麼我做錯了什麼?

非常感謝提前!

var myData = [ 
    // Initializing with the following element works. 
    //['Hyannis Connector',3456.9,'Hyannis Connector Bridle Path','Hyannis Connector/Baden Powell'], 
    // Initializing with this element works but leaves an empty row in the grid.. 
    //[] 
]; 

// create the data store 
segmentStore = new Ext.data.ArrayStore({ 
    fields: [ 
     {name: 'trailName'}, 
     {name: 'segmentLength', type: 'float'}, 
     {name: 'startJunction'}, 
     {name: 'endJunction'}, 
    ] 
}); 

// manually load local data 
segmentStore.loadData(myData); 

// create the Grid 
segmentGrid = new Ext.grid.GridPanel({ 
    region: 'south', 
    store: segmentStore, 
    columns: [ 
     {header: 'Trail Name', width: 140, sortable: true, dataIndex: 'trailName'}, 
     {header: 'Segment Length', width: 75, sortable: true, dataIndex: 'segmentLength'}, 
     {header: 'Start Junction', width: 75, sortable: true, dataIndex: 'startJunction'}, 
     {header: 'End Junction', width: 75, sortable: true, dataIndex: 'endJunction'},    
    ], 
    stripeRows: true, 
    height: 150, 
    width: 600, 
    title: 'Trail Segments in Route', 
    layout: 'fit'  
}); 

var defaultData = { 
      trailName: segment.getTrailName(), 
      segmentLength: segment.getLength(), 
      startJunction: '', 
      endJunction: '' 
     }; 
     var recId = 3; 
     var p = new segmentStore.recordType(defaultData, recId); 
     segmentStore.insert(0, p); 

回答

0

答案在ExtJS論壇中提供。 我需要確保新記錄的記錄ID是不同的。