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

Posted

技术标签:

【中文标题】具有空存储的 ExtJS 网格,在添加/插入时仅显示添加的最新记录 [关闭]【英文标题】:ExtJS grid with empty store, on add/insert only shows the latest record added [closed] 【发布时间】:2011-10-20 00:56:03 【问题描述】:

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

如果商店有一些数据以 (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
        ,
    ]
);

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

原来我忘了提到网格的高度。

autoHeight: true 已修复。

【讨论】:

这应该是您的问题的编辑

以上是关于具有空存储的 ExtJS 网格,在添加/插入时仅显示添加的最新记录 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS:向网格中添加的列插入值

具有远程缓冲存储的 ExtJS 网格无法呈现第一页

当我重新加载网格和存储时,extjs 缓存具有相同名称的图片

ExtJS 4 - 当列编辑器是组合框时如何避免网格列值变为空?

在 extjs 网格中只为一行添加组合框

使用 extjs 网格并行执行