Vaadin Grid ширина и высота не установлены динамически в соответствии с данными - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь отобразить список элементов в сетке компонента Vaadin Framework. По умолчанию размер сетки очень маленький. Он не показывает все имена столбцов. Мне нужно прокрутить, чтобы увидеть все столбцы. Моя сетка имеет только 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);
    }

}

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете попробовать это:

this.tableLayout.setSizeUndefined();
...