问题描述
我正在使用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上看到一个实际的例子。