java - 如何在 Vaadin 8 中设置网格以按自定义比较器排序?

标签 java vaadin vaadin8 vaadin-grid

例如,我的网格由 People 组成,因此我有:

public class People
{
    int id;
    String name;
}

我的网格是这样的:

grid.addColumn(People::getName).setId("姓名");

现在我知道我能做到:

grid.sort("Name", SortDirection.ASCENDING);

约翰说,问题是如果我有两个同名的人怎么办。在本例中,我想首先按 name 排序,然后按 id 排序。 id 不是网格中的列,它只是 People 类的一个属性。

虽然这个示例过于简单,但我确实包含了其他信息,因此重要的是我能够按实际人员而不仅仅是姓名进行排序。就我而言,网格是一份报告,而人名只是众多字段之一。

最佳答案

假设您有一个汽车列表,其中人员是其中一列,我最终的做法是:

Grid<Car> grid = new Grid<Car>();
grid.addColumn(Car::getPerson).setComparator((car1, car2) -> 
{
    // ignoring any null checks for getPerson() as they can be null.
    return car1.getPerson().compareTo(car2.getPerson());               
});

关于java - 如何在 Vaadin 8 中设置网格以按自定义比较器排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49217742/

相关文章:

java - Atlassian汇合: Macro type plugin that will display a popup window when the page is accessed

vaadin - 如何检测图像何时完全加载?

Vaadin 8.2.0 Grid - 如何从多选复选框中删除标签

java - 无法在 Java 中使用 iText 7.1.9 创建 PDF

java - 使用 Jersey 为 REST Web 服务发送 HashMap

java - SpringBoot 使用 MongoDB 实现通用 DAO

Java 12-GC (JEP 346) 在资源按使用付费的容器环境中行为是否特别不利?

ruby-on-rails - 是否可以将 Vaadin 与 Rails 集成???如果是这样,怎么办?

vaadin - 如何在 Eclipse 中运行 vaadin Dashboard-demo 演示

java - 是否可以更改 Vaadin 8 中 CustomComponent 标题的样式