2015-03-25 4 views
0

Я работаю с 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(); 
+0

Выполнение 'store.reload()' действительно ли вы видите, что запрос отправляется на сервер в отладчике вашего браузера? –

+0

Нет, это не так. Теперь я попробовал c/p часть обновления от создания и обновления, которая работает нормально для удаления, и при дельта-документе появляется сообщение «Вы удалили документ». и store.reload() не делает ничего подобного в delete. – Kerempuhh

+0

Как вы сначала загружаете магазин? 'reload' использует последние параметры' load'. –

ответ

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

Работал для меня!

0

Найти индекс записи, используя метод Store.indexOf(), и использовать метод Store.removeAt() для удаления записи.

думаю это может сработать.

Смежные вопросы