How to sort a ComboBox in Vaadin?

心不动则不痛 提交于 2019-12-25 03:55:11

问题


I have a ComboBox and provide the data with a BeanItemContainer. I also attach a sorter for default sorting. But the result is always unsorted. Why?

public class Car {
    private String name;
}

private ComboBox box = new ComboBox("sorted cars");
BeanItemContainer<Car> cont = new BeanItemContainer<>(Car.class);
//cont.addItem();...
System.out.prinltn(cont.getSortableContainerPropertyIds()); //prints: [name]
box.setItemSorter(new DefaultItemSorter());
box.sort(new Object[] {"name"}, new boolean[] {true});
box.setContainerDataSource(cont);

回答1:


seems you have to generate getters and setters for the sortable property in your class

public static class Car {
    private String name;

    public Car(String name){
        this.name = name;
    }


    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }
}

Also you need to sort your container before you assign it to your combobox

BeanItemContainer<Car> cont = new BeanItemContainer<>(Car.class);
cont.addItem(new Car("Z"));
cont.addItem(new Car("B"));
cont.addItem(new Car("Y"));
cont.addItem(new Car("A"));

cont.sort(new Object[] {"name"}, new boolean[] {true});
comboBox_sort.setContainerDataSource(cont);

I tested this code. It should work.



来源:https://stackoverflow.com/questions/25566197/how-to-sort-a-combobox-in-vaadin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!