2016-09-06 60 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)中找到的插件。 –

相關問題