2016-09-06 10 views
0

こんにちは、私はVaadinの初心者です。テーブルのデータをVaadinに追加する方法

ドメインクラスからデータを読み込むためにvaadinのテーブルプロパティを使用していますが、データに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のベストプラクティスは、Containersで作業することです。

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

DomainClassが、それは自動的にその名前の列にマップされますゲッターgetStreet()を持っている場合。テーブルヘッダーを手動で設定することもできますtable.setColumnHeader("street", "Street");

多分Vaadin's docs about Containersが便利です。

+0

これは私が検索しているものです – dhS

+0

エラーが出ていますoutOfMemoryメッセージ:GCオーバーヘッドの上限が – dhS

+0

を超えていますオブジェクトのリストが非常に大きく、オブジェクトに多数のメンバーがある場合、レイジーロードを使用してメモリを節約できますより小さなオブジェクト、すなわちDTOを使用してください。怠惰なローディングに関する私のデモは、https://github.com/apm78/demo-lazyquerycontainerをご覧ください。大きなデータセットには、Vaadinの推奨コンテナであるLazyQueryContainerが使用されます。これはディレクトリ(https://vaadin.com/directory)で見つけることができるアドオンです。 –

関連する問題