删除成功后刷新ExtJS

时间:2015-03-25 11:48:46

标签: javascript extjs

我正在使用ExtJS,当我删除网格中的一行时,我想让它自动刷新。但到目前为止没有运气。 这是我的网格,最后是删除功能

Ext.define('CrudExt.view.usuario.Grid',{
    extend: 'Ext.grid.Panel',
    title       : 'Lista brandova',
    itemId      : 'usuarioGrid',
    xtype       : 'usuariogrid',
    store       : 'Usuarios',
    initComponent: function(){

        this.columns = [
            { header: 'Sifra',  dataIndex: 'sifra' },
            { header: 'Brand', dataIndex: 'brand'}
        ];

        this.dockedItems = [
            {
                xtype: 'toolbar',
                dock: 'top',
                items: [
                {
                    xtype: 'button',
                    text: 'Dodaj',
                    iconCls: 'add',
                    action: 'add'
                },
                {
                    text    : 'Izbriši brand',
                    tooltip: 'Stisni za izbrisati brand.',
                    iconCls: 'delete',
                    itemId: 'delete',
                    scope: this,
                    handler: this.onDeleteClick
                },
                {
                    text: 'Izmjeni',
                    iconCls: 'edit',
                    action: 'edit'
                }
            ]
        },
        {
            xtype: 'pagingtoolbar',
            store: 'Usuarios',
            dock: 'bottom',
            displayInfo: true
        }
        ];

        this.callParent(arguments);
},

   onDeleteClick: function(grid){
    Ext.Msg.show({
         title:'Confirm Delete',
         msg: 'Deleting this document will delete ALL users associated with this group.<br />ARE YOU SURE? Press "Yes" to delete.',
         buttons: Ext.Msg.YESNO,
         fn: processResult,
         icon: Ext.MessageBox.WARNING,
         scope: this
       });
    function processResult(buttonId){
        if (buttonId == 'yes'){
              var selection = this.getView().getSelectionModel().getSelection()[0];
              var rev = selection.get('sifra');

              Ext.Ajax.request
              ({
                 url : 'brand/delete/'+rev,
                 success   : function(response) 
                 {

                }
              });
              //console.log(rev);
        } else {
              Ext.Msg.alert('The document has NOT been deleted');
        }
    };
}

});

我做了什么,我尝试在delte的成功中添加以下行,但没有一个工作:

grid.getStore().load();
store.reload();
store.load();
store.sync();
this.getStore.load();
Ext.getCmp('usuarioGrid').getView().refresh();
grid.getView().refresh();

2 个答案:

答案 0 :(得分:0)

success:function(response){
grid.store.remove(record); 
me.getStore().reload();
}

为我工作!!

答案 1 :(得分:0)

使用Store.indexOf()方法查找记录的索引,并使用Store.removeAt()方法删除记录。

我认为这可行。