2017-07-31 109 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 ...


AFAIK它不可能從頭部到取消合併兩個單元。但是,您可以通過刪除前一個標題並添加一個新標題來解決此問題。您可以在下面找到一個簡單的實現應該讓你開始其中:

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