网格面板上的 ExtJs moveAfter 列非常慢

Posted

技术标签:

【中文标题】网格面板上的 ExtJs moveAfter 列非常慢【英文标题】:ExtJs moveAfter columns on a gridpanel is very slow 【发布时间】:2017-04-19 07:45:02 【问题描述】:

我有一个网格面板,其中的列可以动态重新排序。

我使用以下方法:

grid.headerCt.moveAfter

但是当我的数组包含很多列时,循环(用于移动列)需要大量时间来处理(但不是每次都如此)。 同时所有屏幕都被冻结,即使使用suspendLayouts/resumeLayouts。

在这里,我的网格面板包含 62 列。 有时循环(用于移动列)在不到 1 秒后结束。 但很多时候,循环在 12 秒或更长时间后结束。

有没有更好的方法来做到这一点,但性能最好?

【问题讨论】:

你使用的是哪个版本的 ExtJS? 我正在使用 ExtJs 6.2.1 好的。我会尝试一下。你的网格有多少行?能否提供列配置? 我可以有几百到一千多行。我的数组是完全动态的,列也是根据数据定义的。实际上,这个数组允许用户一次修改多个数据(相同类型):每一行是数据库中记录的一个实例,每一列对应这些记录的一个字段。 【参考方案1】: 如果行数和列数很大,

MoveAfter 会越来越慢。处理时间随着数据量的增加而增加。

我已经应用了这个解决方法:在没有行的数组上移动列,然后在后面添加行。

现在对列重新排序只需不到 1 秒的时间,并且不会从一个调用演变为另一个调用。

【讨论】:

以上是关于网格面板上的 ExtJs moveAfter 列非常慢的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 4.1 如何更改网格面板标题高度

在 ExtJS4 网格面板中获取对分页文本字段的引用

ExtJs Gridpanel 存储刷新

用于网格面板的 extjs 3.2 水平滚动条

Extjs4 树面板从网格面板借用

ExtJS - 网格面板所有检查