gpt4 book ai didi

java - 网格中的 Vaadin 过滤器

转载 作者:行者123 更新时间:2023-11-29 04:56:54 25 4
gpt4 key购买 nike

我对 Vaadin 中的过滤器有疑问。为 Grid 中的每一列制作过滤器很容易。但现在我需要为网格中的所有单元格做一个过滤器。我不知道该怎么做。

我试过在这个例子中这样做,但它不起作用

    Filter f  = 
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-diastolic", true, false),
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-systolic", true, false)),
new Or(new SimpleStringFilter(Columns.SEARCH.id(), "rpm-weight", true, false))) ;
container.addContainerFilter(f);

最佳答案

我为我的案例创建了一个解决方案。我希望对某人有所帮助

//In my case, I created a class that extends Grid.
public class GridExample extends Grid {

...

//Method to add a filter on grid
public void setFilterGrid(BeanItemContainer<?> beanType) {
//This create a HeaderRow to add filter fields
HeaderRow filterRow = this.appendHeaderRow();
for (Column column : getColumns()) {
//For each column from the grid
HeaderCell cellFilter = filterRow.getCell(column.getPropertyId());
//Add a textfield
cellFilter.setComponent(createFieldFilter(beanType, column));
}
}

//This create a TextField to filter the information
private TextField createFieldFilter(final BeanItemContainer<?> container, final Column column) {
TextField filter = new TextField();
filter.setImmediate(true);
filter.addTextChangeListener(new TextChangeListener(){
@Override
public void textChange(TextChangeEvent event) {
String newValue = event.getText();
//Remove the previous filter
container.removeContainerFilters(column.getPropertyId());
if (newValue != null && !newValue.isEmpty()) {
//Filter the information
container.addContainerFilter(new SimpleStringFilter(column.getPropertyId(), newValue, true, false));
}
recalculateColumnWidths();
}
});
return filter;
}
}

更多信息请点击这里: http://krishnasjavaworld.blogspot.com.br/2015/04/step-by-step-vaadin-grid-part-3filters.html

关于java - 网格中的 Vaadin 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33456475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com