具有空存储的ExtJS网格,在添加/插入时仅显示添加的最新记录

时间:2011-08-04 13:55:04

标签: extjs grid add store

我有一个网格,加载时为空,我想根据按钮点击填充。

如果商店有一些数据以(config)开头,则新的记录会添加并显示在网格中没问题。

但是,如果我在开始时没有数据的网格,当添加新记录时,存储计数反映了添加,但网格只显示最新添加的记录。

任何关于在哪里寻找的建议都将受到高度赞赏。谢谢。

以下是代码:

var srGrid = new Ext.grid.GridPanel({
    id: 'srGrid',
    title: 'Scheduled For',
    x: 230,
    y: 40,
    width: 200,
    store: new Ext.data.ArrayStore({
        fields: ['index', 'date'],
        idIndex: 0,
        autoLoad: false
    }),
    columns: [
        {dataIndex: 'date', id: 'srCol', width: 196, menuDisabled: true}
    ],
    listeners: {
        beforeshow: function() {
            //this.store.removeAll();
        }
    }
});

var srCustomContentPanel = new Ext.Panel({
    id: 'srCustomScheduleContent',
    border: false,
    layout: 'absolute',
    items: [
        srGrid,
        {
            xtype: 'button',
            id: 'addButton',
            text: 'Add to Scheduled',
            handler: function() {
                var idx = srGrid.store.getCount()+1;
                var newData = {
                    index: idx,
                    date: 'tomorrow'+idx
                };
                //var recId = 3; // provide unique id
                var p = new srGrid.store.recordType(newData, idx); // create new record
                console.log(p);
                srGrid.store.insert(0, p); 
            },
            x: 10,
            y: 250
        },
    ]}
);

2 个答案:

答案 0 :(得分:0)

您的代码适用于我:http://jsfiddle.net/sadkinson/rF5TQ/24/

我稍微修改它以便在jsfiddle中渲染。也许它与您正在使用的absolute布局有关。您可以使用FireBug检查DOM,看看是否有实际添加的行,但是只是不可见。

答案 1 :(得分:0)

事实证明,我忘了提到网格的高度。

autoHeight:true修复它。