ExtJS 存储/网格重置

Posted

技术标签:

【中文标题】ExtJS 存储/网格重置【英文标题】:ExtJS Store/Grid reset 【发布时间】:2012-01-11 21:14:02 【问题描述】:

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

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

谢谢,

编辑 ExtJS 3

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

【问题讨论】:

【参考方案1】:

对于 ExtJs4:只需要 store.loadRecords([ array ])。在 4.2.2 版本中,store.proxy 没有 clear() 方法,所以它不起作用(在其他地方的其他示例中提出......)

如果您想完全清除存储和代理,请传递一个空数组。这很方便,因为在某些情况下,您希望清除存储,removeAll 仅将数据移动到存储内部管理的数组中,因此稍后在仅显示 1 条记录的 gridStore 上进行同步时,您可能会看到控制器充斥着一堆标记为删除的记录!

【讨论】:

【参考方案2】:

查看一些代码示例(和 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表示先删除已有记录。

【讨论】:

以上是关于ExtJS 存储/网格重置的主要内容,如果未能解决你的问题,请参考以下文章

EXTJS 4 网格与分页不起作用---存储代理问题

ExtJS:: 如何过滤网格中的行,但不在存储中

extjs 动态存储模型网格列

ExtJS 2.3/3.x 网格存储

Extjs:如何将存储记录用作网格的存储

ExtJs 3:如何根据用户网格存储值动态更新网格单元工具提示?