vadin过滤器日期列



我用的是Vaadin 15。在我的应用程序中,我使用网格,它使用数据提供程序(数据)来显示一堆不同的列。此外,我使用过滤器来过滤所有列。一列由日期组成,使用我当前的过滤函数,我不能过滤范围。

我对Java和编程都是新手。这是我目前使用的过滤函数。

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

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

谢谢你的帮助。我们也很欣赏一些关于如何做到这一点的文献提示。

我用的是Vaadin 15。

只是指出使用Vaadin 15没有什么意义,因为它不再被支持了。最新版本vadin 21.

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

设置网格
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()));
});

最新更新