-1

我正在将相当大的软件移植到 ExtJS Grid。大量数据(我的意思是大量数据)按需加载到放置在网格单元格内的跨度中。

想象一下网格单元格<span id="foo_bar'></span>作为内容,并且特殊的 ajax 处理程序正在轮询后端以获取更新的信息,一旦可用,跨度就会被它填充。

现在,如果我折叠网格的某些部分然后再次重新展开它们,我会丢失所有自动填充的单元格内容,并留下空跨度(我首先从这里开始)。

我知道正确的方法是设置存储并将所有数据推送到存储中。但正如我上面提到的:我正在将相当多的遗留软件移植到 ExtJS,我在这里并没有太多选择。

有没有办法自动将网格单元格值推送到商店?

更新:

假设一个网格加载了 2000 个单元格(这可能会有很大差异)。每个单元格都包含各种等级的 HTML,主要是 . ,但这几乎可以是任何东西(包括一个单元格中的多个跨度或 div)。在后台有一个彗星进程几乎实时地将新数据推送到 HTML 页面。此数据根据其 ID 或类或两者填充到相应的 SPANS 和 DIV。

我想要实现的是:a)网格的模型使用单元格的新 html 内容自动更新(我该如何实现)?b) 当折叠/展开树的节点时,模型数据不会重新加载。

a 或 b 都可以吗?如果是这样 - 怎么样?

4

1 回答 1

0

只需在“特殊 ajax 处理程序”成功返回值时更新您的商店。避免手动弄乱dom。

所以在成功回调中执行类似 -> loadData()

编辑:

似乎您正在使用非常糟糕的遗留代码:) 如果向 ajax 处理程序添加一行简单的代码是一项巨大的工作。但是您可以附加 dom 侦听器,但这是非常糟糕的做法。这里有一些要听的事件

编辑:

是一个使用如何监听 dom 事件的示例,它是一个纯粹的 js 解决方案,但是,嗯.. 它可以工作..

于 2012-09-24T07:56:46.910 回答