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
我想向我的 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