如何在更改内容后刷新vaadin Grid?

时间:2017-11-08 18:26:53

标签: polymer vaadin

我使用的是Vaadin网格。我发出了一个put请求来更新网格中元素的分数。我想知道如何在更新后使网格响应以显示新信息。现在我必须刷新整个页面以显示新信息。

我不确定会发布什么代码,如果有帮助,我会使用基本的vaadin网格。

1 个答案:

答案 0 :(得分:0)

我不完全确定将更改添加到网格中的含义,但我想您使用的是setItems或数据提供程序?

首先,您将拥有:

Grid<MyItem> grid = new Grid(MyItem.class);
grid.setItems(someItems);

对于第二个你会写:

Grid<MyItem> grid = new Grid(MyItem.class);
grid.setDataProvider(...);

对于第二种方式,您可以使用Java 8表示法指定数据提供者,如下所示:

grid.setDataProvider(
  (sortOrders, offset, limit) -> {//e.g. call to repo }, 
  () -> { // count provider, e.g. repo.count() });

或如:

grid.setDataProvider(new ListDataProvider<>(myDataCollection));

要提出问题,在这两种情况下,您都可以致电以下人员来获取提供者:

DataProvider<MyItem> provider = grid.getDataProvider();

要更新一个特定元素,数据提供者提供方法

provider.refreshItem(item);

重要的是要知道MyItem类必须实现getId()方法,或者equals()。如果不是这种情况,您可以调用provider.refreshAll()