2017-07-31 17 views
0

私はこれに助けが必要です。ヘッダー行を削除するVAADIN 7.8.4

これは私がセル(列)を一緒に結合するのに使うコードです。しかし、私はこの「参加」を取り除くために何が必要なのかを知りたい。例えば。私がボタンをクリックすると、セルを "マージ"し、他のボタンをクリックするとセルをアンマリします。

HeaderRow row = grid.prependHeaderRow(); 
    row.join("Black","White").setText("Something"); 

答えて

1

注:Again、あなたからvaadin 7.8.4を取得したのですか?最新の7.x releaseは7.7.10です。この演習では、私はそれはタイプミスだと仮定して7.7.4を使用します...


私の知る限り、それはヘッダからの未マージ二つのセルすることはできません。ただし、これを回避するには、前のヘッダーを削除して新しいヘッダーを追加します。

public class GridWithUnmergedColumnHeaders extends VerticalLayout { 

    private static final int INDEX_OF_HEADER = 1; 
    private boolean shouldMerge = false; 

    public GridWithUnmergedColumnHeaders() { 
     // basic grid setup 
     Grid grid = new Grid(); 
     IndexedContainer container = new IndexedContainer(); 
     grid.setContainerDataSource(container); 
     container.addContainerProperty("name", String.class, ""); 
     container.addContainerProperty("surname", String.class, ""); 
     container.addContainerProperty("age", Integer.class, 0); 

     grid.addRow("Some", "One", 20); 
     grid.addRow("Someone", "Else", 50); 

     grid.addHeaderRowAt(INDEX_OF_HEADER).join("name", "surname").setText("Whatever"); 

     // button to toggle properties 
     Button button = new Button("Toggle header merging", event -> { 
      if (shouldMerge) { 
       grid.removeHeaderRow(INDEX_OF_HEADER); 
       grid.addHeaderRowAt(INDEX_OF_HEADER).join("name", "surname").setText("Whatever"); 
      } else { 
       grid.removeHeaderRow(INDEX_OF_HEADER); 
       Grid.HeaderRow headerRow = grid.addHeaderRowAt(INDEX_OF_HEADER); 
       headerRow.getCell("name").setText("What"); 
       headerRow.getCell("surname").setText("Ever"); 
      } 
      shouldMerge = !shouldMerge; 
     }); 

     addComponents(grid, button); 
    } 
} 

結果:

grid-simulate-header-unmerge

あなたが始める必要があります単純な実装の下に見つけることができます
関連する問題