【问题标题】:ExtJS How to update filtered store data?ExtJS 如何更新过滤的商店数据?
【发布时间】:2015-07-30 00:13:10
【问题描述】:

只需执行以下步骤:

  1. 我的网格中填充了来自商店的数据。

  2. 我对其进行过滤(例如:仅显示状态为“迟到”)。

  3. 存储中的数据已更新。

  4. 我仍然看到过滤的旧数据(状态迟到的旧记录)。

  5. 我删除过滤器,所有新数据都出现了,所有旧记录在过滤器期间不可见。

也许有人知道为什么以及如何解决这个问题?

已修复 商店中的这段代码做了一个技巧:

    listeners : {
    beforeload : function() {
        this.data.clear();
        if(this.data._source)
            this.data._source.clear();
    }
},

【问题讨论】:

  • 数据没有从store中消失,只是过滤了,你可以在store上看到过滤器
  • 问题是更新时没有变化
  • 你描述的不是问题。您将记录添加到存储然后删除过滤器,您能更准确地解决问题吗?
  • 我有数据:[a,b,c] 过滤器可见 [a] 后,我更新存储,因此存储数据变为 [f,g,h],但在网格中仍然可见 [a ],所以我删除了过滤器,我在网格中看到:[b,c,f,g,h]。问题:[b,c] 不应该存在。
  • a filter 只是从视图中暂时从商店中删除记录,它不会永久删除它们。如果您想永久删除记录,则需要从存储中删除这些记录。

标签: javascript extjs filter grid store


【解决方案1】:

您可以将yourStore.reload() 绑定到您的更新事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2017-11-19
    相关资源
    最近更新 更多