如何开始编辑立即添加到网格的新行/列

时间:2014-10-07 14:59:55

标签: javascript extjs extjs3

我正在开发一个小应用程序,我想在单列EditorGridPanel中添加一个新行,每次添加新行时我希望它处于编辑模式,这样用户就可以立即将想要的文本写入其中。

来自a complete jsfiddle的相关代码:

store = new Ext.data.ArrayStore({
        autoDestroy: true,
        storeId: 'myStore',
        idIndex: 0,
        fields: [
            { name: 'group', type: 'string' }
        ],
        data: [],
        listeners: {
            add: function(t, records, index) {
                // This call causes problems
                grid.startEditing(index, 0);
            }
        }
    });

当商店中的add事件被触发时,之后添加了记录,它似乎仍然没有被添加到实际网格中,只有商店。这会导致网格组件出错。

是否还有可能在网格组件中使用的其他事件?

1 个答案:

答案 0 :(得分:1)

这只是时间问题。您正在尝试在将记录添加到商店时添加网格,并且需要一些时间来使两个内容同步。您应该尝试将代码放在rowinserted的{​​{1}}事件处理程序中。

为了让您的代码按照现在的方式工作,只需将其更改为:

grid.getView()

执行此操作将为商店和网格之间的信息提供足够的时间来同步。