Vaadin 14 - Grid::setClassNameGenerator 不起作用

1 java vaadin

我在为网格中的每一行设置背景颜色时遇到问题。我使用 setClassNameGenerator,但这不起作用。但是,如果我为整个网格设置 className,那么我可以看到一些结果。最后,我想根据某些条件为行着色,但现在我只是硬编码一个“失败”的类,看看着色是否有效。


这是我的 CSS 代码:

我的 CSS


执行此代码段不会改变任何内容

执行此代码段时没有结果


但是,这使整个背景按预期变黄,因此 CSS 导入没问题。

这有效


任何帮助都会很棒。谢谢

Kas*_*rer 5

你说你的最后一个代码“所以 CSS 导入没问题” - 不,它不是。

这是一个巨大的差异,因为行样式需要在网格组件的范围内定义,而设置整个网格的背景可以使用全局 css 来完成。这是因为Grid正在使用 shadow-DOM。你可以在这里阅读,或者在这里更广泛地阅读

为了将 CSS 加载到网格组件的范围内,您需要做的是将参数添加themeFor = "vaadin-grid"@CssImport注释中。

@CssImport(value = "./styles/failedGridColumn.css", themeFor = "vaadin-grid")
代替
@CssImport("./styles/failedGridColumn.css")