我怎样才能使rowediting插件在extjs不添加一行,当我点击取消



目前rowediting插件提供了update/cancel的选项。当我点击cancel按钮时,如果它是一个新添加的行,我希望它不添加新行。

我怎样才能做到这一点?

这是小提琴

目前,使用rowediting,我只是添加和删除行。如果不可能使用cancel,我怎么能添加一个新的按钮close,使它不添加行。

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

  1. fireEvent canceledit

  2. 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);
            }
        }
    }
});

你的小提琴的例子不工作,因为你使用那里ExtJS 4.0.0。在这里你可以找到一个ExtJS 4.2.0的工作程序:jsfiddle

相关内容

  • 没有找到相关文章

最新更新