Я пытаюсь отобразить список элементов внутри компонента сетки фреймворка Vaadin. По умолчанию размер сетки очень маленький. Он не показывает все имена столбцов. Мне нужно прокрутить, чтобы увидеть все столбцы. В моей сетке всего 10 столбцов. Он не меняется согласно данным в списке.
Я пытался установить размер сетки следующими способами:
this.grid.setHeightByRows(list.size());
this.grid.setSizeUndefined();
this.grid.setSizeFull();
Ничто из вышеперечисленного не может установить размер в соответствии с данными
private Grid<PrevYearConsumption> createGridTable() {
Grid<PrevYearConsumption> grid = new Grid<PrevYearConsumption>();
grid.addColumn(PrevYearConsumption::getPreviousPeriod).setCaption(PrevYearConstants.PREVIOUS_PERIOD);
grid.addColumn(PrevYearConsumption::getPresentReading).setCaption("Prev Elec");
grid.addColumn(PrevYearConsumption::getPreviousDataComplete)
.setCaption(PrevYearConstants.PREVIOUS_DATA_COMPLETE);
grid.addColumn(PrevYearConsumption::getPreviousDq).setCaption(PrevYearConstants.PREVIOUS_DQ);
grid.addColumn(PrevYearConsumption::getPresentPeriod).setCaption(PrevYearConstants.PRESENT_PERIOD);
grid.addColumn(PrevYearConsumption::getPresentReading).setCaption("Present Elec");
grid.addColumn(PrevYearConsumption::getPresentDataComplete).setCaption(PrevYearConstants.PRESENT_DATA_COMPLETE);
grid.addColumn(PrevYearConsumption::getPresentDq).setCaption(PrevYearConstants.PRESENT_DQ);
grid.addColumn(PrevYearConsumption::getDiff).setCaption(PrevYearConstants.DIFFERENCE);
grid.addColumn(PrevYearConsumption::getPercentageChange).setCaption(PrevYearConstants.PERCENTAGE);
grid.setSizeUndefined();
return grid;
}
Внутри класса View
public class viewClass {
private HorizontalLayout tableLayout = new HorizontalLayout();
public void method ()
{
this.grid = createGridTable();
this.tableLayout.setSizeFull();
this.tableLayout.addComponent(this.grid);
List<PrevYearConsumption> list = getList();
this.grid.setItems(list);
}
}
implements View
, а неextends UI
для vaadin ‹10. В любом случае, я предполагаю, что вы используете Vaadin 8, потому что вы используетеtableLayout.addComponent(..)
. Я считаю, что знаю, в чем проблема, но это предположение предполагает некоторые вещи в вашем классе просмотра, которые не видны в вашем коде viewClass. Обновите свой вопрос, чтобы показать вашу фактическую реализациюviewClass
или, по крайней мере, конструктор и всеimplements
иextends
класса. - person kscherrer   schedule 08.10.2019