当前位置: 首页 > 知识库问答 >
问题:

Vaadin网格表:如何禁用排序功能并设置一列的颜色

苗森
2023-03-14

我正在使用瓦丁的网格表进行数据表示。为此,我试图弄清楚以下两个问题:

1.)如何禁用各列表头的排序功能

2.) 如何设置网格表中一列的颜色

共有2个答案

卓学智
2023-03-14

以下是对Morfic好答案的一个小补充:

1.)如何禁用各列表头的排序功能

网格询问容器列是否可排序(请参阅网格中的追加列方法)。如果要禁用所有列的排序,可以重写容器中的 getSort 可排序容器属性 Id 并返回一个空集合:

container = new BeanContainer<String, Dive>(Dive.class) {
            @Override
            public Collection<?> getSortableContainerPropertyIds() {
                LinkedList<Object> sortables = new LinkedList<Object>();
                return sortables;
            }
        };
刘兴修
2023-03-14

首先,我发现Vaadin文档是开始寻求帮助的好地方。对于练习的其余部分,假设我们有一个Grid,其中包含3个简单的列c1、c2

Grid grid = new Grid();
grid.addColumn("c1", String.class);
grid.addColumn("c2", String.class);
grid.addColumn("c3", String.class);

1.)如何禁用各列表头的排序功能

遍历每一列,并将其sortable属性设置为false:

for (Grid.Column column : grid.getColumns()) {
    column.setSortable(false);
}

或者只获取所需的一列并设置其可排序属性:

grid.getColumn("c1").setSortable(false);

2.)如何设置网格表中一列的颜色

与表格的处理方式类似,您需要在主题中定义 CSS 样式:

@import "../valo/valo.scss";

@mixin mytheme {
  @include valo;
  // Insert your own theme rules here

  .v-grid-cell.green {
    background: #33BB00;
  }
}

并使用CellStyleGenerator将样式应用于所需的列:

grid.setCellStyleGenerator(new Grid.CellStyleGenerator() {
    @Override
    public String getStyle(Grid.CellReference cellReference) {
        if ("c1".equals(cellReference.getPropertyId())) {
            return "green";
        } else {
            return null;
        }
    }
});

这将产生以下内容:

 类似资料:
  • 我已经将BigDecimal属性的列添加到网格中,并希望对此类列进行排序可以开箱即用: 添加:如果不使用NumberRenderer并以正常方式添加列,那么setSortedProperty将按预期工作:

  • 我正在使用Vaadin,我想为网格/表格中的特定单元格设置背景颜色,或者如果无法为特定单元格设置背景颜色,我想至少为网格/表格中的特定单元格设置字体颜色。我有网格/表格的代码TableView如下: 网格/表的内容类为: 如果可以为特定单元格设置背景颜色,或者至少设置字体颜色,并且你知道怎么做,请写信。例如,网格/表格中单元格的值为“1”,我想将其设为红色,但如果单元格的值为“5”,我想将其设为绿

  • 问题内容: 我正在使用Vaadin,我想为我的表格/表格中的特定单元格设置背景色,或者如果无法为特定表格中的单元格设置背景色,我想至少为表格/表格中的特定单元格设置字体颜色。我有一个表格/表格的代码TableView如下: 表格/表格的内容类为: 如果可以将背景颜色设置为特定的单元格,或者至少设置字体颜色,并且您知道该怎么做,请写信。例如,在表格/表格中单元格的值为“ 1”的情况下,我想将其设置为

  • 我使用带有嵌套属性的Vaadin网格,例如。我想用对这些列进行排序,因为是一个LocalDateTime,它总是。但这行不通。我需要为每个这样的列定义一个,我已经使用了很多:-) 这是一个bug还是故意的? 亲切地问候 张秀坤

  • 问题内容: 在jquery数据表中,我可以禁用特定的列排序 有人知道如何在有角JS中执行此操作吗? 此代码隐藏了我的搜索栏,但无法隐藏我的第一列和第四列的排序功能? 问题答案: 的角度数据表等价于 是 … 您必须包括在控制器中: 参见 http://l-lin.github.io/angular- datatables/archives/#!/api 。

  • 问题内容: Vaadin 7中的和组件有什么区别? 我应该使用哪个,什么时候使用? 问题答案: Grid是一个功能更强大的新组件,它应该是Table的后继组件(请参阅Table已死,Grid长寿)。因此,应该没有任何必要偏爱表格而不是网格。 这是Vaadin从表格迁移到网格的一系列文章的第一篇:https : //vaadin.com/blog/-/blogs/mission-rip- table