Vaadin Grid 可排序日期列

Vaadin Grid sortable date column

我想向我的 vaadin 网格组件添加一个可排序的日期列。不幸的是,它不适用于格式化日期,我认为在格式化日期对象之后它只是一个字符串,因此使用此列进行排序无法正常工作,但无论如何我需要一个解决方案。我已经尝试过这个解决方案,它也不起作用:

    grid.addColumn(new LocalDateTimeRenderer<>(MyObject::getCreated,
                DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT, FormatStyle.MEDIUM)
                        .withLocale(Locale.GERMANY).withZone(ZoneId.of("Europe/Paris"))))
                            .setHeader("Created").setSortProperty("created");

你有别的想法吗?

谢谢

您可以设置一个比较器

grid.addColumn(new LocalDateTimeRenderer<>(MyObject::getCreated,
                DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT, FormatStyle.MEDIUM)
                           .withLocale(Locale.GERMANY).withZone(ZoneId.of("Europe/Paris"))))
     .setHeader("Created")
     .setSortProperty("created")
     .setComparator(MyObject::getCreated);

另请查看文档:https://vaadin.com/docs/latest/ds/components/grid#sorting