2016-09-06 62 views
0

嗨,我是Vaadin的新手。如何在Vaadin表中添加数据

我使用vaadin的Table属性加载来自Domain Class的数据,但我不知道如何设置数据的table.additem。 我使用下面的代码来生成列值

Table table = new Table("Customer Table"); 
    table.addContainerProperty("Street", String.class, null); 
    for(DomainClass domainClass : domainClassList) { 
      //  table.addItem(domainClass.getStreet()); 
    } 
layout.addComponent(table); 

但它显示的空白页。

+2

您是否阅读过[documentation](https://vaadin.com/docs/-/part/framework/components/components-table.html)? –

回答

1

Vaadin的最佳做法是使用容器。

final Table table = new Table("Customer Table"); 
final BeanItemContainer<DomainClass> container = new BeanItemContainer<>(
      DomainClass.class, domainList); 
table.setContainerDataSource(container); 

如果DomainClass有一个getter getStreet()然后它会自动映射到与该名称的列。仍然可以手动设置表格标题table.setColumnHeader("street", "Street");

也许您会发现Vaadin's docs about Containers也有用。

+0

这是我正在搜索非常感谢:) – dhS

+0

我得到错误outOfMemory消息:GC开销限制超过 – dhS

+0

如果您的对象列表非常大,并且对象有很多成员,您可以使用延迟加载来节省内存并使用较小的对象,即DTO。请查看我的懒惰加载演示:https://github.com/apm78/demo-lazyquerycontainer。它使用LazyQueryContainer,Vaadin推荐的用于大型数据集的容器。这是一个可以在目录(https://vaadin.com/directory)中找到的插件。 –