Java 如何从Vaadin TreeGrid/Grid的行和单元格中获取应用的背景色?
我使用的是Vaadin 8.6.4版Java,我有一个数据集,它在TreeGrid上表示。直到现在,我还无法获得应用于任何行或任何单元格的样式名。有什么方法或技巧可以获得vaadin中单元格/行的实际样式?样式列表将像下面的代码一样添加 我还想通过重写Grid类的intern方法,在创建网格之前为所有单元格设置一个Id。在那之后,我应该能够在客户端启动一个Javascript函数,根据单元格的id搜索单元格的样式。但是所有这些都太复杂了,所以我没有成功Java 如何从Vaadin TreeGrid/Grid的行和单元格中获取应用的背景色?,java,vaadin,vaadin8,vaadin-grid,Java,Vaadin,Vaadin8,Vaadin Grid,我使用的是Vaadin 8.6.4版Java,我有一个数据集,它在TreeGrid上表示。直到现在,我还无法获得应用于任何行或任何单元格的样式名。有什么方法或技巧可以获得vaadin中单元格/行的实际样式?样式列表将像下面的代码一样添加 我还想通过重写Grid类的intern方法,在创建网格之前为所有单元格设置一个Id。在那之后,我应该能够在客户端启动一个Javascript函数,根据单元格的id搜索单元格的样式。但是所有这些都太复杂了,所以我没有成功 final String reservat
final String reservationColor = "background-color: "green" !important;";
final String STYLENAME_RESERVED = "reserved";
Styles styles = Page.getCurrent().getStyles();
styles.add(".v-treegrid-cell." + STYLENAME_RESERVED +"{"+ reservationColor + "}");
TreeGrid是直接扩展网格的,所以您应该能够使用类似的方法来设置TreeGrid的样式 例如,更改单元格背景颜色的首选方法是使用样式生成器
这里已经有了一个问题和答案:谢谢你的回答,但我不想为单元格设置背景色。我想获取该单元格的样式。我建议在服务器端维护有关该单元格的信息,并在样式生成器中使用该信息来定义要使用的样式名。那么您就不需要直接检查样式名了。当然可以。问题是我想创建一个树状体的xlsx表示,有些行有重要的颜色。有一种方法可以知道哪种样式/背景颜色有网格的任何单元格?这种情况发生在服务器端。问:有一种方法可以知道哪种样式/背景颜色有网格单元?答:这方面没有服务器端API。这就是为什么我提出了另一种方法来设置背景颜色,并在数据模型中维护这些信息。我认为从软件架构的角度来看,这也是更正确的方法。