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

感谢您提供任何线索。

4

3 回答 3

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
于 2013-07-22T11:43:50.630 回答
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
于 2013-07-19T22:45:43.227 回答
0

代替

user_grid.getView().refresh(); 

尝试

user_grid.store.load();

如果在服务器端执行删除,则无需在存储上执行任何其他操作(拼接)。

于 2013-07-19T22:16:38.663 回答