我创建了一个表,其中有几列。我给每一列的标题名称。在表初始化之后,我看到该列未按在表中添加的顺序出现。列名按字母顺序重新排列。请在下面找到相同的代码。
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。
请在这里帮助。 如果需要进一步的信息,请告诉我。