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

Vaadin 14 Grid Component Column containing checkbox does not sort

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

添加的与文本相关的列

现在我们要在网格上启用多重排序。默认情况下,header 中的排序指示符(up/down 箭头)针对基于文本的列显示,但不针对布尔值显示。

对布尔列/组件列添加排序后(addComponentColumn(...).setSortable(true)显示header中的排序指示符,但更改排序方向时不执行排序本身(none / asc / desc) 使用header.

中的箭头

我怎样才能完成这项工作? 提前致谢!

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

如果您使用的是 in-memory 数据,那么您可以使用 Column.setComparator。如果您使用的是后端数据源,那么您应该改用 Column.setSortProperty 并确保数据提供者实际考虑 Query.getSortOrders.

的内容

您可以在 https://cookbook.vaadin.com/sort-with-renderer.

上看到这方面的实践示例