3

validateedit関数ではなく、編集関数で編集されたグリッドセルの値を復元する(値を編集前の値に設定する)必要があります。

"orderList": {
    validateedit: function (plugin, edit) {
      //validate...
    },
    edit: function (plugin, edit) {
        Ext.MessageBox.confirm('Confirm', 'Are you sure to change this order status?', function (btn) {
        if (btn == 'yes') {
            //update
        } else {
            // I want to rollback!
            edit.cancel = true;
            edit.record.data[edit.field] = edit.originalValue; //it does not work
        }
        });
    }
}

グリッド セルの値を変更する方法 (エディタ)?

ありがとう!

4

2 に答える 2

4

リジェクト方法はどうですか:

"orderList": {
    validateedit: function (plugin, edit) {
      //validate...
    },
    edit: function (plugin, edit) {
        Ext.MessageBox.confirm('Confirm', 'Are you sure to change this order status?', function (btn) {
            if (btn == 'yes') {
                //update
            } else {
                edit.record.reject(); // this should revert all changes
            }
        });
    }
}

また、イベントの2番目の引数(「edit」と名付けたもの)には、イベントのプロパティであるプロパティがedit含まれていないことに注意してください。したがって、この行は何もしません。cancelbeforeeditedit.cancel = true

また、なぜこのイベントを使用しないのか興味がありbeforeeditました。この種のイベントには、より理想的に適しているようです。それが、なぜそのcancelプロパティを持っているのかということです。

于 2012-07-25T21:19:09.497 に答える