【发布时间】:2013-10-26 00:14:54
【问题描述】:
我正在使用 Ext.data.Store 的 each()。但是这个方法,当 store 被过滤时,只会循环过滤的记录。即使在商店上应用了过滤器,我们是否还有其他方法或解决方法来循环遍历商店的所有记录。
var attStore = Ext.getStore("myStore");
var allRecords = attStore.snapshot || attStore.data;
allRecords.each(function (record) {
if (record.data.IsUpdated) {
record.set('updatedByUser', true);
}
else {
record.set('updatedByUser', false);
}
record.commit();
});
var allRecords = attStore.snapshot || attStore.data;actually 行按预期返回所有记录,但是当我尝试更新该记录(或使用 record.data.property = something 更新该记录中的属性之一)时,该记录没有得到更新。
谢谢
【问题讨论】:
-
你如何应用过滤器来存储?
-
@Riku:我使用以下代码:storeName.filter('fieldName', value);
-
如果更新不起作用,你可以试试这个workarround。清除商店过滤器,应用更改,然后再次应用过滤器。在这种情况下,您不需要使用 store.snapshot,store.each 会返回所有记录,我认为它应该可以工作。
-
@Riku:感谢您的快速回复。我知道这种方法是一种解决方法,但我希望 Sencha 是否可以提供一些开箱即用的方法。再次感谢您的帮助。
标签: extjs extjs4.1 extjs-stores