ExtJS 6.0.2:如何强制自定义进度条网格列在排序时更新

ExtJS 6.0.2: How do I force a custom progress bar grid column to update on sorting

在我正在使用的代码中,有一个网格,其中有一列使用自定义进度条表示来自商店的两个字段的数据。进度是根据这两个其他字段计算得出的,并以 'x / y'.

等格式的文本形式显示在进度条上

我的问题是,当重新计算网格时,部分或所有行的 x 和 y 值相等(即进度为 100%)时,进度列没有得到正确更新;处于 100% 的进度条不随其各自的行移动,and/or 进度条在排序后似乎重复或丢失。请注意,如果一行或多行的进度为 0,或者 2 行或多行的进度相同但用于计算各行进度的值不同的任何其他情况,也会发生这种情况。

这里有一个 fiddle 可以说明问题:https://fiddle.sencha.com/#view/editor&fiddle/35c5

有什么方法可以在网格排序时强制重新呈现整个进度列,而不仅仅是计算进度值发生变化的那些,以便所有进度条始终显示正确?

我设法通过从每个计算值中减去一个小的随机数(在 0(不包括 0,不包括 10e-8,包括)范围内)(或在值为 0 的地方添加)来解决这个问题。 (如果由于两个贡献值都为 0 而将值设置为 0,则不会添加随机值,因为在这种情况下没有必要。)这可确保网格中的每个值都不同,因此将遵循其各自的值当行的顺序由于排序或更新而改变时的行。