注: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);
}
}
結果:
