如何在浮动表单面板中刷新网格面板的存储?

时间:2013-07-19 19:58:35

标签: javascript extjs extjs4 gridpanel

我正在使用这个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

感谢您提供任何线索。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

而不是

user_grid.getView().refresh(); 

尝试

user_grid.store.load();

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

答案 2 :(得分: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