2013-07-19 8 views
0

Я работаю над этим приложением ExtJS 4, где у меня есть часть для управления пользователями приложений.Как обновить сетку в панели плавающей формы?

Форма появляется, как окно floating: true.

var user_grid_form = Ext.create('Ext.form.Panel', 
{ 
    xtype  : 'form-grid', 
    frame  : true, 
    title  : 'User Information', 
    floating : true, 
    draggable : true, 
    closable : true, 
    closeAction : 'hide', 
    bodyPadding : 5, 
    layout  : 'column', 
    closeAction : 'destroy', 
    width  : 532, 
    items  : 
    [ 
     user_grid, 
     user_textfield 
    ], 
    buttons : 
    [ 
     { 
      text : 'Save Edits', 
      icon : 'images/save.png', 
      handler : handleUpdates 
     }, 
     { 
      text : 'Delete User', 
      icon : 'images/delete.png', 
      handler : handleDeletes 
     } 
    ] 
}).show(); 

user_grid является сетка в моем окне панели, которая показывает usernames

Теперь проблема в том, что когда я выбираю имя пользователя, так же, как jhony и нажмите Delete User мой handleDeletes обновляет базу данных с помощью Ajax. Но затем я пытаюсь обновить user_grid, и это не сработает. После удаления, пользователь должен исчезнуть из user_grid

Это то, что я пытался сделать внутри handleDeletes:

user_store.splice(ind, 1);  // I removed `jhony` from `user_store` 
           // which is the `store` for `user_grid`    
user_grid.getView().refresh(); // Now trying to refresh and NO ERRORS NO ACTIONS 

Спасибо за любые подсказки.

ответ

1

На самом деле, то, что вы хотите сделать, это:

user_grid.getStore().remove(yourRecord); //remove record from the store and also from the grid view 
user_grid.getStore().sync(); //send changes to the server 
0

Вместо

user_grid.getView().refresh(); 

попробовать

user_grid.store.load(); 

и нет необходимости делать что-нибудь еще (сплайсинга) в хранилище, если удаление выполняется на стороне сервера.

0

Спасибо за ваш ответ dbrin но это не сработало.

Я понял, что нет необходимости касаться user_grid сетки. Мне просто нужно было обновить его store. Магазин был data и как только я это сделал, все работало:

user_store.splice(ind, 1); 
u_store.load(user_store); 
// u_store is the store that has user_store data 
Смежные вопросы