:私は次のような私のグリッドにフィルタを追加したどのように再適用するフィルタVaadin 8グリッド内
filterTextField.addValueChangeListener(event -> {
myListDataProvider.addFilter(
columnName,
value-> value.toLowerCase().contain(filterTextField.getValue()));
});
これが設定され、フィルタを適用します。しかし、後で私がするようなアイテムのリロード必要グリッド上でアクションを実行:私はこれを行うと
grid.setItems(reloadItemsDueToAction());
がfilterTextField
はもちろんですまだ移入し、グリッドがリロードされるが、しかし問題は、IドンでありますListDataProvider
に設定されたフィルタを再適用する方法を知っているので、グリッドはfilterTextField
に従って再びフィルタリングされます。フィルタはListDataProviderで設定する必要がありますが、グリッドにどのように適用しますか?
通常、['dataProvider.refreshAll()'](https://vaadin.com/api/8.1.5/com/vaadin/data/provider/DataProvider.html#refreshAll--)を呼び出して、 'DataChangeEvent'、グリッドはそれを受け取り、UIを更新します。あなたのデータは 'grid.setItems(...) 'を呼び出すためにどのように変化しますか? – Morfic
refreshAll()の呼び出しが機能しません。アクションの例は、アクションの詳細に応じて、あるデータベーステーブルから別のデータベーステーブルにデータが転送されるアクションです。この場合、グリッドをリロードするだけで簡単です。問題は、グリッドをリロードすると、フィルタはTextFieldに表示されますが、グリッドには適用されなくなります。 –
データプロバイダを使用してDBなどのデータを取得していますか?あなたが[sscce](http://sscce.org)を提供できるなら、 – Morfic