extjs-向商店添加记录不会反映在网格上

时间:2011-05-03 13:43:27

标签: extjs

嗨我有网格与商店和我动态添加记录到商店大多数时候添加到商店的数据反映在网格上但有时记录似乎没有反映在网格上..请帮我解决这个问题

var entityGrid = new Ext.grid.EditorGridPanel({

    ddGroup           : 'gridDDGroup',
    layout            : 'fit',
    store             : gridStore,
    closable          : true,
    enableDragDrop    : true,
    enableColumnMove  : false,
    enableColumnResize: true,
    columnLines       : true,
    stripeRows        : true,
    colModel          : new Ext.grid.ColumnModel({
        columns:cols
    }),
    expandable        : true,
    autoExpandColumn  : 'name',
    tbar              : gridToolBar,
    view              : new Ext.grid.GridView({  
        enableRowBody : true,
        ignoreAdd     : true,       
        deferEmptyText: false,
        emptyText     : 'No Record found.',       
        getRowClass   : function(record, rowIndex, rp, ds){}
    }), 
    id                : id,
    selModel          : new Ext.grid.RowSelectionModel({
        singleSelect  : true
    })

var store =new Ext.data.JsonStore({
    fields : [
        {
            name : 'name',
            mapping : 'name'
        }, {
            name : 'displayName',
            mapping : 'displayName'
        }
    ],
    root : masterData.
})

2 个答案:

答案 0 :(得分:1)

我不确定它有什么不同,但这段代码总是对我有用:

var r = new store.recordType({ field1: '1', field2: '2' }); 
r.commit();
store.add(r);
store.commitChanges();
grid.store.sort('field1', 'ASC');

尝试添加commitChanges()并刷新。

答案 1 :(得分:0)

我不确定你是否仍然受到这个问题的困扰,但我发现代码在: http://www.sencha.com/forum/showthread.php?141982-commitChanges-and-rejectChanges-for-the-Store-in-ExtJS-4

非常有用,因为事情发生了变化,转向EXTJS-4。您使用的是哪个版本的EXTJS?由于您正在使用EditorGridPanel,我猜它是ExtJS 3.如果您愿意,我可以贡献一个代码片段,使用上述架构成功更新网格上的记录。