如何同时更改vaadin网格过滤器和布局?

如何同时更改vaadin网格过滤器和布局?,vaadin,vaadin-grid,Vaadin,Vaadin Grid,我有一个vaadin网格,上面有一些过滤器,过滤器可以通过按钮显示/隐藏。 现在的问题是,如果网格的数据源被修改,同时网格的位置发生变化,那么网格就不能正确地重新绘制。网格仅显示10项中的5项,顶部显示一条空行 按钮操作是将setVisible设置为false并重置过滤器 filter.addClickListener(event -> { if (filters.isVisible()) { location.setValue(null); fi

我有一个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:我有一个完整的示例应用程序,问题出现在

上,该错误似乎是由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视图,因为我经常会发现类似这样的奇怪错误。

看来该错误是由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>

过滤器
根据我近2年使用Vaadin的经验,我不鼓励您使用基于*.html的Vaadin视图,因为我经常发现像这样的奇怪bug