5

現在、roweditingプラグインには のオプションがありますupdate/cancelcancel新しく追加された行であればボタンを押したときに、新しい行を追加しないようにしたいです。

どうすればこれを達成できますか?

これがフィドルです。

現在、 を使用してrowediting、行を追加および削除しているだけです。を使用できない場合cancel、新しいボタンcloseを追加して行を追加しないようにするにはどうすればよいですか。

sencha フォーラムも見ていましたが、次のようなPOSTを見つけました。

  1. fireEventcanceledit

  2. autoRecoverOnCanceltrue の場合、レコードがファントムの場合は削除する

しかし、それもうまくいきませんでした。提案していただけますか?

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
}]
4

1 に答える 1

4

ここでは、保存されていないレコードをキャンセルする方法を確認できます。

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

于 2014-05-02T19:05:31.730 に答える