ExtJS存储/网格重置

时间:2011-12-02 21:49:46

标签: extjs grid store reset clear

我有一个按钮,当单击时,将使用提供的URL创建一个JSONstore。然后将商店加载到网格中。如果再次单击该按钮,它会再次添加所有信息(因此会列出两次)。我想要它,以便当用户点击按钮时,它会清除商店/网格,然后添加所有内容。

关于如何实现这一目标的任何想法?

谢谢,

修改 ExtJS 3

datasetStore.removeAll();
datasetStore.loadData(datasetsArray);

2 个答案:

答案 0 :(得分:5)

查看一些代码示例(和extjs版本)会很有用,但您只需使用loadRecords方法(http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.JsonStore-method-loadRecords):

grid.store.loadRecords([array of your new records here], {addRecords: false});

{addRecords: false}表示将首先删除现有记录。

答案 1 :(得分:1)

对于ExtJs4:只需执行store.loadRecords([array])。在版本4.2.2中,store.proxy没有clear()方法,因此不起作用(在别处的其他示例中提出......)

如果要完全清除存储和代理,请传递一个空数组。这很方便,因为在某些情况下你想要清除存储并且removeAll只将数据移动到商店内部管理的数组中,所以当稍后在只显示1条记录的gridStore上进行同步时,你可能会看到你的控制器充满了一堆标记为删除的记录!!