Vaadin 8 刚刚发布。在他们的文档中并没有提供在 Grid 中添加过滤器的方法,我只在 stackoverflow 上找到了这个可行的解决方案。
HeaderCell cell = filterRow.getCell(pid);
// Have an input field to use for filter
TextField filterField = new TextField();
filterField.setColumns(0);
filterField.setHeight("23");
// Update filter When the filter input is changed
filterField.addTextChangeListener(change -> {
// Can't modify filters so need to replace
b.removeContainerFilters(pid);
// (Re)create the filter if necessary
if (! change.getText().isEmpty())
b.addContainerFilter(
new SimpleStringFilter(pid,
change.getText(), true, false));
});
cell.setComponent(filterField);
但是,自从更新之后,由于新网格中不再提供SimpleStringFilter,因此这个解决方案不再起作用。而且BeanItemContainer也不再被识别,只允许使用setItems()来填充网格数据。
有谁能帮我更新这段代码以适应Vaadin 8?