我使用的是Vaadin网格。我发出了一个put请求来更新网格中元素的分数。我想知道如何在更新后使网格响应以显示新信息。现在我必须刷新整个页面以显示新信息。
我不确定会发布什么代码,如果有帮助,我会使用基本的vaadin网格。
答案 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()