Vaadin Grid:如果不使用 LUMO 主题,则交替显示行颜色

Vaadin Grid: alternating row color if not using LUMO theme

对于使用 LUMO 主题的网格,有一个简单的解决方案来获得交替的行颜色(查看“主题变体用法”下的here)。此外,如果您知道网格列的数量,您可以使用 CSS 选择器 vaadin-grid-cell-content:nth-child(an+b) 设置颜色。但不幸的是,这两个条件在我们的案例中都不满足。

一般情况下如何实现交替行颜色?

我能想到的唯一解决方案是使用 List 输入数据并定义行 class 生成器,如下所示:

grid.setClassNameGenerator(i -> (entities.indexOf(i) % 2) == 0 ? "even-row" : "");

但我想使用所有类型的 Collection 作为输入数据。

对于那些寻找答案的人,请查看来自 cfrick 的评论。 CSS 选择器是

:host([theme~="row-stripes"]) [part~="row"]:not([odd]) [part~="body-cell"]