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 存储/网格重置的主要内容,如果未能解决你的问题,请参考以下文章