例如,我的网格由- { name: 'Neha', age: 22 }
组成,因此我有:
People
我的网格是这样的:
public class People
{
int id;
String name;
}
现在我知道我能做到:
grid.addColumn(People::getName).setId("Name");
问题是,如果我有两个同名的人,约翰说。在这种情况下,我想先按grid.sort("Name", SortDirection.ASCENDING);
排序,然后按name
排序。 id不是网格中的列,它只是id
类的属性。
虽然这个例子过于简单但我确实包含了额外的信息,所以我能够按实际人而不仅仅是姓名进行排序是很重要的。在我的例子中,网格是一个报告,而这个人的名字只是众多领域中的一个。
答案 0 :(得分:2)
我最终做到这一点的方式,假设你有一个名为Cars的列表,其中一个是:
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());
});