删除标题行VAADIN 7.8.4

时间:2017-07-31 17:33:25

标签: java join merge frameworks vaadin

我需要帮助。

这是我的代码,我用它来将单元格(列)连接在一起。但我需要一些我可以用来删除这个“加入”的东西。例如。当我点击按钮时,我想要“合并”单元格,当我点击另一个按钮时,我想要“取消合并”单元格。

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

1 个答案:

答案 0 :(得分: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