Vaadin 14包含复选框的网格组件列未排序

问题描述

我正在使用Vaadin 14网格。该网格包含许多列。其中一些需要表示布尔值,因此我们在该列内使用复选框组件。这是通过使用grid.addComponentColumn方法来完成的。刚刚使用grid.addColumn

添加的与文本相关的列

现在,我们要在网格上启用多重排序。认情况下,标题栏的排序指示器(向上/向下箭头)针对基于文本的列显示,但不针对布尔值显示

将排序添加到boolean列/ component列(addComponentColumn(...).setSortable(true)之后,显示标题中的排序指示符,但是使用箭头更改排序方向(无/ asc / desc)时,不执行排序本身在标题中。

我该如何进行这项工作? 预先感谢!

解决方法

当您对列中呈现的内容具有自定义逻辑时,则还需要显式配置应如何处理该列的排序。

如果您使用的是内存数据,则可以使用Column.setComparator进行。如果您使用的是后端数据源,则应改用Column.setSortProperty,并确保数据提供者实际上考虑了Query.getSortOrders的内容。

您可以在https://cookbook.vaadin.com/sort-with-renderer上看到一个实际的例子。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...