保存更改后如何将编辑的记录放在网格的第一个位置?

How to put edited record on first position in grid after saveing chnages?

我正在使用 Extjs 4.2.1,我问自己一段时间如何在保存过程发生后将编辑和保存的记录放在网格顶部。所以用户可以看到保存更改的效果。

我试图在商店保存方法的成功回调方法之间放置一些代码。它看起来像这样:

store.save({
    success : function(rec, op, success) {

    var selectionModel = Ext.getCmp('grid').getSelectionModel();
    var selection = selectionModel.getSelection();
    selectionModel.select(selection);
    billRecordStore.insert(0, selection);
    billRecordStore.reload();
    Ext.getCmp('grid').getView().refresh();
}

但我不知道如何在 table 之上获取更改的记录... 非常欢迎任何想法和有用的帖子!

提前感谢您的帮助!

当我编辑记录时,我没有使用 load() 或 reload() 方法。 我只用sync()方法

这样编辑的寄存​​器在网格中保持突出显示。

像这样:

var values = form.getValues();
var record = form.getRecord();
record.set(values);

var store = grid.getStore();

store.sync({
   success: function(){...},
   failure: function(){...}
});

当我创建新记录时,我对网格记录进行了排序,以便最后插入的记录显示在第一行。

所以当它执行 load() 或 loadPage(1) 时,总是选择与最后插入的记录对应的网格的第一行。

2015 年 6 月 26 日编辑

        var form = Ext.ComponentQuery.query('#formitemId')[0];
        var grid = Ext.ComponentQuery.query('#griditemId')[0];
        var values = form.getValues();
        var record = form.getRecord();

        record.set(values);

        var store = grid.getStore();

        store.sync({
            callback: function(){
                var record1 = grid.getSelectionModel().getLastSelected(record);
                form.loadRecord(record1);
            },
            scope: this,

            success: function(){

                var windowInfoCNrecord = Ext.MessageBox.show({
                        title:'INFO',
                        msg: 'Success...',
                        closable: true,
                        modal: false,
                        iconCls: 'msg_success',
                        icon: Ext.MessageBox.INFO
                });

            },
            failure: function(){
                var windowInfoErrorEdit = Ext.Msg.alert({
                    title: 'Error',
                    message:'Error...!',
                    icon: Ext.Msg.ERROR,
                    button: Ext.Msg.CANCEL,
                    buttonText:{
                        cancel: 'Close'
                    },
                });
            }
        }); //sync