Vaadin - 默认情况下ComboBox是否延迟加载?

时间:2016-03-03 02:29:22

标签: vaadin vaadin7

Vaadin 7.6.2

BeanItemContainer

BeanItemContainer<CountryBean> countryBeanContainer 
        = new BeanItemContainer<>(CountryBean.class);
countryBeanContainer.addAll(CountryData.list);                
country.setContainerDataSource(countryBeanContainer);
country.setItemCaptionMode(AbstractSelect.ItemCaptionMode.PROPERTY);
country.setItemCaptionPropertyId("name");
country.setTextInputAllowed(true);
...
...

CountryBean

public class CountryBean {

    private String value;
    private String name;

    public CountryBean(String value, String name) {
        this.value = value;
        this.name = name;
    }

    public String getValue() {
        return this.value;
    }

    public void setValue(String value) {
        this.value = value;
    }

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

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

CountryData

public abstract class CountryData {        
    public static final List<CountryBean> list = 
            Collections.unmodifiableList(Arrays.asList(
                    new CountryBean("AF", "Afghanistan"),
                    new CountryBean("AX", "Åland Islands"),
                    new CountryBean("AL", "Albania"),
                    new CountryBean("DZ", "Algeria"),
                    new CountryBean("AS", "American Samoa"),
                    new CountryBean("AD", "Andorra"),
                    new CountryBean("AO", "Angola"),
                    new CountryBean("AI", "Anguilla"),
                    ...
                    ...

所以,我在ComboBox中运行这个设置,效果很好。但我的问题是:这个200多个国家/地区的列表是否已编译到客户端代码中,或者当用户在选项列表中键入或页面时是否从服务器延迟加载?我想了解这是如何工作的,因为我可能需要在我的UI中有(比方说)5个国家/地区字段。

1 个答案:

答案 0 :(得分:1)

ComboBox正在处理客户端和服务器之间的延迟加载。仅从下拉列表中可见的行从服务器提取到客户端。因此,当您在下拉列表中的不同页面之间进行过滤或导航时,它仅从服务器中提取这些行。