1

我有一个 vaadin 网格,顶部有一些过滤器,过滤器可以通过按钮显示/隐藏。现在的问题是,如果修改了网格的数据源,同时网格的位置发生了变化,那么网格将无法正确重绘。网格仅显示 10 个项目中的 5 个,顶部有一个空行。

示例应用

按钮操作设置setVisible为 false 并重置过滤器。

filter.addClickListener(event -> {
    if (filters.isVisible()) {
        location.setValue(null);
        filter.setCaption("Filter");
        filters.setVisible(false);
    } else {
        filter.setCaption("Show all");
        filters.setVisible(true);
    }
});

有没有办法将布局标记为脏或要求重建?

PS:我有一个完整的示例应用程序,在https://github.com/jansauer/vaadin/tree/filtergrid/

4

1 回答 1

0

该错误似乎是由 Vaadin UI 中的错误引起的。只需id="filters"在网格后面移动您的水平布局就可以了。

<v-vertical-layout size-full>

<v-horizontal-layout>
    <v-button _id="filter" style-name="borderless-colored">Filtern</v-button>
</v-horizontal-layout>

<v-grid _id="grid" size-full :expand />

<v-horizontal-layout _id="filters" style-name="filters" margin spacing width-full>
    <v-text-field _id="name" caption="Name" width="220px" />
    <v-combo-box _id="location" caption="Standort" />
    <v-css-layout :expand />
</v-horizontal-layout>

</v-vertical-layout>

根据我使用 Vaadin 近 2 年的经验,我会劝阻您不要使用基于 *.html 的 Vaadin 视图,因为我经常发现像这样的奇怪错误。

于 2016-03-19T15:38:24.740 回答