Javascript 如何使extjs中的行编辑插件在点击cancel时不添加行?

Javascript 如何使extjs中的行编辑插件在点击cancel时不添加行?,javascript,extjs,extjs4.2,extjs-grid,roweditor,Javascript,Extjs,Extjs4.2,Extjs Grid,Roweditor,目前,行编辑插件提供了更新/取消选项。当我点击取消按钮时,如果它是新添加的行,我希望它不添加新行 我怎样才能做到这一点 这是 目前,通过行编辑,我只是添加和删除行。如果无法使用取消,如何添加新按钮关闭,使其不添加行 我也在看sencha论坛,我发现了一个网站,上面写着: fireEventcanceledit 当autoRecoverOnCancel为true时,如果记录为幻影,则将其删除 但是,这也不起作用。你能建议一下吗 var rowEditing = Ext.create('Ext.gr

目前,
行编辑
插件提供了
更新/取消
选项。当我点击
取消
按钮时,如果它是新添加的行,我希望它不添加新行

我怎样才能做到这一点

这是

目前,通过
行编辑
,我只是添加和删除行。如果无法使用
取消
,如何添加新按钮
关闭
,使其不添加行

我也在看sencha论坛,我发现了一个网站,上面写着:

  • fireEvent
    canceledit

  • autoRecoverOnCancel
    为true时,如果记录为幻影,则将其删除

  • 但是,这也不起作用。你能建议一下吗

    var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToMoveEditor: 1,
        autoCancel: false,
    
    });
    
    tbar: [{
        text: 'Add Employee',
        iconCls: 'employee-add',
        handler: function() {
            rowEditing.cancelEdit();
    
            // Create a model instance
            var r = Ext.create('Employee', {
                name: 'New Guy',
                email: 'new@sencha-test.com',
                start: new Date(),
                salary: 50000,
                active: true
            });
    
            store.insert(0, r);
            rowEditing.startEdit(0, 0);
        }
    }, {
        itemId: 'removeEmployee',
        text: 'Remove Employee',
        iconCls: 'employee-remove',
        handler: function() {
            var sm = grid.getSelectionModel();
            rowEditing.cancelEdit();
            store.remove(sm.getSelection());
            if (store.getCount() > 0) {
                sm.select(0);
            }
        },
        disabled: true
    }]
    

    在这里,您可以看到如何取消未保存的记录:

    var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
        clicksToMoveEditor: 1,
        //autoCancel: false,
        listeners:{
            'canceledit': function(rowEditing, context) {
                // Canceling editing of a locally added, unsaved record: remove it
                if (context.record.phantom) {
                    context.store.remove(context.record);
                }
            }
        }
    });
    

    您的fiddle示例不起作用,因为您正在使用ExtJS 4.0.0。在这里,您可以找到一个使用ExtJS 4.2.0的可用版本:

    很抱歉,我接受了答案,但是,我发现了一个bug。我去了小提琴,点击添加员工,点击更新,然后,我双击它再次使用行编辑器更新,点击取消,行被删除。您的模型中没有ID。您需要定义唯一的idProperty-但这完全是另一个问题。谢谢!伟大的解决方案!