如何在不重新加载的情况下刷新ExtJS网格中的数据

时间:2015-05-21 10:57:25

标签: extjs

如何在没有页面刷新的情况下更新extjs中的网格数据?请给我一个完整的工作代码我是extjs的新手。这是我的代码

Ext.Ajax.request({
    url: 'register.cfm',
    method:'POST',
    params  : { data : JSON.stringify(form.getValues()) },
    dataType: "json",
    success: function(response){
         win.hide();
         //var str = JSON.stringify(response.responseText);
         var obj = JSON.parse(response.responseText);
         if (obj==1) {
            var values = form.getFieldValues ();
            store.add(form.getFieldValues())
        } else {
            (here i need to show updated values in the grid without refresh)
        }
   },
   failure : function(response){}
}); // eof ajax

2 个答案:

答案 0 :(得分:1)

我认为这里的问题是您手动尝试通过ajax更新商店。

应该对商店进行预先配置,以便与您的终端配合使用并进行自我更新。如果您使用ExtJS 4+,则可以使用Store Documentation

中所示的商店过滤器

如果您使用的是ExtJs 3,那么您应该更新商店中的参数并让它处理请求并更新记录。

例如(代码未经过全面测试,可能需要稍作修改):

Ext.getCmp('myGrid').getStore().load({
    params: {
        data: JSON.stringify(form.getValues())
    }
});

答案 1 :(得分:0)

由于你甚至没有发布你的网格名称,我不能提供超过

Ext.getCmp('yourGridId').getView().refresh();

应该在

之后调用
store.add(form.getFieldValues())

(你错过了 ; 吗?)

See this question for more details