Vaadin 过滤器日期列

Vaadin filter Date Column

我正在使用 Vaadin 15。在我的应用程序中,我使用了一个网格,它使用数据提供程序(数据)来显示一堆不同的列。此外,我正在使用过滤器来过滤所有列。一列包含日期,使用我当前的过滤功能我无法过滤范围。

我对 Java 和一般编程还很陌生。这是我目前使用的过滤功能。

TextField cas=getFilters(casColumn,filter);
cas.addValueChangeListener(event-> data.addFilter(dataRecord-> StringUtils.containsIgnoreCase(dataRecord.getCas(), cas.getValue())));

现在我还希望能够过滤日期范围。所以在过滤器 TextField 中给出了一个日期,直到今天的所有内容都会显示,所有早于该日期的内容都不会显示。

感谢您的帮助。还感谢有关如何执行此操作的一些文献提示。

I am using Vaadin 15.

只是指出使用 Vaadin 15 毫无意义,因为它不再受支持。最新版本Vaadin 21.

如果您在内存中使用数据提供程序,则使用最新的 Vaadin 版本使用

设置网格
GridListDataView<Data> dataView = setITems(data); // where data is a collection of 

然后你可以通过dataView设置你使用的过滤器,比如说

textField.addValueChangeListener(event -> {
     dataView.setFilter(item-> item.getProperty().equals(event.getValue));
});

请注意,如果您有来自回调的数据提供者,则上述方法不适用于您,而是按如下方式进行过滤,即提供可以使用过滤器值的查询

    TextField filter = new TextField("Filter");
    filter.setValueChangeMode(ValueChangeMode.LAZY);
    filter.addValueChangeListener(event -> {
        grid.setItems(query -> personService
                .fetch(query.getOffset(), query.getLimit(), event.getValue()).stream(),query -> personService.count(event.getValue()));
    });