检查您在此处显示的工作示例,每个.ag-row div 都有一个附加类.ag-row-odd 或.ag-row-even。所以基本上这些类模仿你可以通过使用.ag-row:nth-child(odd) 和.ag-row:nth-child(even) 实现的行为。
在这种情况下可能发生的情况是,当您对 .ag-row 元素重新排序时,类并没有被更新,而是只是四处移动。那代表的是这样的:
<!-- Default //-->
<div class="ag-row ag-row-even"></div>
<div class="ag-row ag-row-odd"></div>
<div class="ag-row ag-row-even"></div>
<div class="ag-row ag-row-odd"></div>
<!-- Sorted //-->
<div class="ag-row ag-row-odd"></div>
<div class="ag-row ag-row-odd"></div>
<div class="ag-row ag-row-even"></div>
<div class="ag-row ag-row-odd"></div>
所以在这种情况下,我建议将样式更改为:
.ag-row:nth-child(odd) {
background-color: #fcfcfc;
}
.ag-row:nth-child(even) {
background-color: #ffffff;
}
如果这不是一个选项,那么您应该查看重新排序 .ag-row 元素的脚本,因为它可能没有相应地更改类。
更新
我想我找到了你的问题。我查了this example
在检查元素时,我发现当你重新排序时,每一行都有这两个属性。
<div row-index="3" aria-rowindex="7"></div>
据我所知,即使您更改了排序参数,这两个属性实际上也不会改变。因此,如果您将行样式基于它们,就像使用 row-index 参数一样,您将永远无法获得正确的顺序,因为有时您会得到:
<div row-index="3" aria-rowindex="7"></div>
<div row-index="5" aria-rowindex="9"></div>
<div row-index="7" aria-rowindex="11"></div>
由于这没有错,样式被应用,但不是按照您喜欢的顺序。该脚本正在按预期工作,只是您的颜色条件不起作用。
我认为解决这个问题的方法是 100% css 并且你可以删除 cellStyle 定义,因为我认为问题就在那里。