例如,我的网格由 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/