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个国家/地区字段。
答案 0 :(得分:1)
ComboBox
正在处理客户端和服务器之间的延迟加载。仅从下拉列表中可见的行从服务器提取到客户端。因此,当您在下拉列表中的不同页面之间进行过滤或导航时,它仅从服务器中提取这些行。