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

时间:2016-03-16 08:30:02

标签: vaadin vaadin-grid

我有一个vaadin网格,顶部有一些过滤器,过滤器可以通过按钮显示/隐藏。 现在的问题是,如果网格的数据源被修改并且同时网格的位置改变,则网格未被正确地重绘。网格仅显示10个项目中的5个,顶部显示空行。

example app

按钮操作是将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/

1 个答案:

答案 0 :(得分: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>

从我近8年的Vaadin经历中,我不鼓励你使用基于* .html的Vaadin视图,因为我经常会发现像这样的奇怪错误。