2017-07-31 60 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