【问题标题】:Vaadin Grid width and height not set dynamically as per dataVaadin Grid 的宽度和高度未根据数据动态设置
【发布时间】:2019-10-08 08:51:06
【问题描述】:

我正在尝试在 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;
    }

在视图类中

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);
    }

}

【问题讨论】:

  • 可以附上截图吗?屏幕上是否有足够的空间来显示所有列?
  • 我不愿相信您的“viewClass”中的任何代码。它既不扩展组件(对于 vaadin 流)也不扩展 UI(对于 vaadin
  • 我的意思是 implements View 不是 extends UI 用于 vaadin tableLayout.addComponent(..)。我相信我知道问题出在哪里,但是这种猜测会假设您的视图类中的某些内容在您的视图类代码中不可见。请更新您的问题以显示您对viewClass 的实际实现,或者至少是构造函数以及该类的所有implementsextends
  • @KasparScherrer 我正在使用 Vaadin 8。在我们的项目中,我们为我们的视图类扩展了一个用于 UI 开发的自定义抽象层。我查看了层次结构,发现扩展的 Vaadin 类是 CustomComponent。

标签: java vaadin vaadin8 vaadin-grid


【解决方案1】:

你可以试试这个:

this.tableLayout.setSizeUndefined();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 2015-08-27
    • 2017-06-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多