1

上にいくつかのフィルターを備えたvaadinグリッドがあり、フィルターはボタンで表示/非表示にできます。現在の問題は、グリッドのデータ ソースが変更され、同時にグリッドの位置が変更された場合、グリッドが適切に再描画されないことです。グリッドには、10 項目中 5 項目のみが表示され、上部に空の行が表示されます。

サンプルアプリ

ボタン アクションはsetVisiblefalse に設定され、フィルターがリセットされます。

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>

私のほぼ 2 年間の Vaadin の経験から、*.html に基づく Vaadin ビューを使用しないことをお勧めします。このような奇妙なバグをよく見つけるからです。

于 2016-03-19T15:38:24.740 に答える