css - 如何将样式名称添加到网格行而不选择它们?

标签 css vaadin highlight vaadin8

单击网格行后,我想为其设置样式。我得到了 itemClickListener 中的网格行/元素,但我需要避免使用 grid.select(item) .我已经实现了所需的输出,该输出将突出显示我使用网格选择方法单击的行,但这会给我的应用程序带来问题,因为我不希望选择该行,但我希望它只是突出显示,例如将 CSS 样式应用于所述行。到目前为止,这是我的代码:

grid.addItemClickListener(e -> {
  grid.deselectAll();
  grid.select(e.getItem());
});
也:
grid.setStyleGenerator(row -> grid.getSelectedItems().contains(row)
    ? getRowSelectedStyle(row)
    : null);
我似乎在论坛上找不到任何可以为单击的行应用样式名称的内容。

最佳答案

您可能需要为您的元素 Bean 添加一个属性,即“单击”。
那么你可以做

grid.addItemClickListener(e -> {
    e.getItem().setClicked(true);
    grid.getDataProvider().refreshItem(e.getItem());
});
grid.setStyleGenerator(row -> row.isClicked()
    ? getRowSelectedStyle(row)
    : null);

关于css - 如何将样式名称添加到网格行而不选择它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69165498/

相关文章:

html - CSS - HTML 如何使 anchor 图像转到特定位置

css - Vaadin 使用 CSS 在 v.tabsheet 中分隔标签

javascript - HTML 中的全文搜索忽略标签/&

html - 将 Logo 和链接放在标题中的同一行

jquery - 图像上的鼠标悬停效果会影响其他图像

javascript - CSS 不在框中居中文本,而是移到右侧?

java - 寻找 Vaadin 和 Spring 原型(prototype)

java - 表中的水平选项组 (Vaadin)

css - 如何禁用文本选择突出显示

html - 在 HTML 文本输入中选择文本时更改突出显示颜色