我有一个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/
答案 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视图,因为我经常会发现像这样的奇怪错误。