Vaadin表列顺序自动更改

时间:2019-11-14 04:25:26

标签: vaadin8

我创建了一个表,其中有几列。我给每一列的标题名称。在表初始化之后,我看到该列未按在表中添加的顺序出现。列名按字母顺序重新排列。请在下面找到相同的代码。

private Table createGridTable() {
    Table grid = new FilterAndPagedTable(this.generateTableOptions());
    grid.addContainerProperty("previousPeriod", String.class, null);
    grid.addContainerProperty("prevchannelA", Float.class, null);
    grid.addContainerProperty("prevchannelB", Float.class, null);
    grid.addContainerProperty("prevchannelC", Float.class, null);
    grid.addContainerProperty("prevchannelD", Float.class, null);
    grid.addContainerProperty("prevAllChannelCons", Float.class, null);
    grid.addContainerProperty("presentPeriod", String.class, null);
    grid.addContainerProperty("presentchannelA", Float.class, null);
    grid.addContainerProperty("presentchannelB", Float.class, null);
    grid.addContainerProperty("presentchannelC", Float.class, null);
    grid.addContainerProperty("presentchannelD", Float.class, null);
    grid.addContainerProperty("presentAllChannelCons", Float.class, null);
    grid.addContainerProperty("diffOfPrevNPresent", Float.class, null);
    grid.addContainerProperty("percentageChangeOfPrevNPresent", String.class, null);

    grid.setColumnHeader("previousPeriod", PrevYearConstants.PREVIOUS_PERIOD);
    grid.setColumnHeader("prevchannelA", IemsConstants.A_DC_Power);
    grid.setColumnHeader("prevchannelB", IemsConstants.B_Essential_Cooling);
    grid.setColumnHeader("prevchannelC", IemsConstants.C_UPS_Power);
    grid.setColumnHeader("prevchannelD", IemsConstants.D_Non_Essential_Cooling);
    grid.setColumnHeader("prevAllChannelCons", "A + B + C + D");
    grid.setColumnHeader("presentPeriod", PrevYearConstants.PRESENT_PERIOD);
    grid.setColumnHeader("presentchannelA", IemsConstants.A_DC_Power);
    grid.setColumnHeader("presentchannelB", IemsConstants.B_Essential_Cooling);
    grid.setColumnHeader("presentchannelC", IemsConstants.C_UPS_Power);
    grid.setColumnHeader("presentchannelD", IemsConstants.D_Non_Essential_Cooling);
    grid.setColumnHeader("presentAllChannelCons", "A + B + C + D");
    grid.setColumnHeader("diffOfPrevNPresent", PrevYearConstants.DIFFERENCE);
    grid.setColumnHeader("percentageChangeOfPrevNPresent", PrevYearConstants.PERCENTAGE);
    System.out.println(grid.isSortAscending());
    System.out.println(grid.isSortEnabled());
    grid.setVisibleColumns(new Object[] { "previousPeriod", "prevchannelA", "prevchannelB", "prevchannelC",
            "prevchannelD", "prevAllChannelCons", "presentPeriod", "presentchannelA", "presentchannelB",
            "presentchannelC", "presentchannelD", "presentAllChannelCons", "diffOfPrevNPresent",
            "percentageChangeOfPrevNPresent" });



    grid.setSizeFull();
    return grid;
}

public FilterAndPagedTableOptions generateTableOptions() {
    FilterAndPagedTableOptions fptOptions = new FilterAndPagedTableOptions();
    fptOptions.setCollapseAllowed(false);
    fptOptions.setColumnReorderingAllowed(false);
    fptOptions.setSortAllowed(false);
    fptOptions.setShowInbuiltFilterBar(false);
    return fptOptions;
}

我正在将数据加载到下表中

List<PrevYearConsumption> tableContainer = viewElements.get(PrevYearConstants.PREV_YEAR_TABLE_CONFIG)
                    .getTableContainer();
            this.grid.setPageLength(tableContainer.size());
            BeanItemContainer container = new BeanItemContainer<PrevYearConsumption>(PrevYearConsumption.class);
            container.addAll(tableContainer);
            this.grid.setContainerDataSource(container);

表中列的顺序不符合我在表头中添加的方式。它以随机方式出现。 我正在使用vaadin8。

请在这里帮助。 如果需要进一步的信息,请告诉我。

0 个答案:

没有答案