flex datagrid可能存在数据缓存问题

时间:2010-11-14 14:04:09

标签: java flex caching actionscript blazeds

我有一个应用程序,其中有5个选项卡。每个选项卡都有一个数据网格。第一个选项卡中数据网格的数据提供者是其他选项卡中数据网格的通用数据提供者。每个选项卡中的数据根据​​状态而变化,除了显示所有数据的第一个选项卡。现在主要选项卡的数据每分钟刷新一次,使用计时器从后端获取新数据[使用Blazeds与服务器端代码进行交互,即Java]。

在我对第一个选项卡以外的任何选项卡中的任何一行执行任何操作后,我需要从该数据网格中删除该行。我可以通过从数据提供者中删除条目来做到这一点,但是一旦我回到主选项卡并返回到我完成操作的选项卡,我就会找回已删除的条目。这里需要注意的是,条目不在主选项卡中,也不在我执行操作的选项卡中,但只要在选项卡之间导航,它就会显示在UI中。但如果我使用F5进行刷新,则表现正常。

我只是想知道这个问题是否是由于客户端的数据缓存造成的,如果是这样的话,可以解决这个问题呢?

2 个答案:

答案 0 :(得分:1)

从arrayCollection / data中删除对象后,在其上运行collectionName.refresh()

那就是说,我最好的猜测是,我认为你正在遇到更新指针或复制ref而不是实际数据的情况,并且它会被绑定或类似地重置为该指针。

如果你在绑定到数据网格的对象上添加一个绑定侦听器/更改观察器,它会在获得CHANGE事件时跟踪到控制台,我打赌你会惊喜!

(顺便说一下,这是如何快速调试此类问题)。

答案 1 :(得分:0)

从您的情况来看,如果不查看您的代码就很难说。我同意Flextras的评论。

  

删除后,它不会显示在选项卡中以及导航时   它没有显示到主选项卡   那里,只有当你回来   再次到相同的标签它没有   得到反映。

您的数据库查询似乎可能存在问题[可能]。为什么不重新检查您的查询,执行删除操作后,数据库表是否得到反映。

如果上述结果为假,请返回下一步。

  • dataprovider的trace()是什么 给你。我的意思是什么呢 包含?在select事件上尝试此操作 选项卡。

  • 您的数据提供者可能会保留以前的值,但项目来自 被删除的网格不反映数据提供者。你是否 尝试刷新数据网格或为什么不调用invalidateProperties() 检查方法。

  • 再一次代码选项卡 可以帮助你和我们花很多时间来对这个问题给出正确的反击。