2016-08-15 8 views
4

Vaadinグリッドコンポーネントに基づいてテーブルを実装しようとしています。一部のフィールドには多くのテキストが含まれており、グリッドは複数行の代わりにこの場合は常に1行を表示します。vaadinグリッドでワードラップ(複数行)を有効にする

私はvaadin forumからいくつかのアイデアに従ってCSSを修正しようとしましたが、私は同じ結果を得ています。同様にグリッドヘッダーでは、省略記号付きの1行を表示します。

修正方法を教えてください。

答えて

2

グリッドはクライアント側からこのスタイルを管理します。これを直接制御することはできません。

グリッドコンポーネントでは、隠しデータまたはの詳細を表示する方法が提供されます。によってDetailsGeneratorになります。

しかし、ヘッダーについては、可能な限りヘッダーを小さく記述的にすることが唯一の解決策であるため、ヘッダーについては何もできません。しかし、まだ私の意見では、ヘッダーの折り返しがうまく見えません。

次の例では、答えてくれてありがとうを、項目選択の詳細の可視性を管理

Grid g = new Grid(); 
g.addColumn("num"); 
g.addColumn("val"); 

g.setWidth(400, Unit.PIXELS); 
g.setHeight(300, Unit.PIXELS); 

g.getColumn("num").setWidth(100); 
g.getColumn("val").setWidth(300); 

g.addRow("1", "This is just a simple test. No need to take it too seriously, please !!!!"); 
g.addRow("2", "This is just a simple test. No need to take it too seriously, please !!!!"); 
g.addRow("3", "This is just a simple test. No need to take it too seriously, please !!!!"); 
g.addRow("4", "This is just a simple test. No need to take it too seriously, please !!!!"); 

g.addItemClickListener(new ItemClickListener() { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    @Override 
    public void itemClick(ItemClickEvent event) { 
     g.setDetailsVisible(event.getItemId(), !g.isDetailsVisible(event.getItemId())); 
    } 
}); 

g.setDetailsGenerator(new DetailsGenerator() { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    @Override 
    public com.vaadin.ui.Component getDetails(RowReference rowReference) { 
     String value = (String)rowReference.getItem().getItemProperty("val").getValue(); 
     Label val = new Label(); 
     val.setValue(value); 
     val.addStyleName(ValoTheme.LAYOUT_HORIZONTAL_WRAPPING); 
     return val; 
    } 
}); 

enter image description here

+0

!私はそのようなものを実装しようとしましたが、私のテーブル12の列では、それらのいくつかは複数行でなければならず、ディテールジェネレータでは少し奇妙に見えます。また、ヘッダ内のmutlineはうまく見えません。私はあなたに同意しますが、実際のデータではなく、名前/値を持つ例やショーケースではなく、ありがとうございました! – aim

関連する問題