【问题标题】:Refreshing Grid Data (Vaadin 8)刷新网格数据 (Vaadin 8)
【发布时间】:2018-01-30 09:58:27
【问题描述】:

我有一个从数据库中获取数据的数据提供者,并且我将我的数据保存为一个列表。

List<Person> myList= new ArrayList<>(dao.getAllPersons());
ListDataProvider<Person> dataProvider = new ListDataProvider<>(myList);
//...
grid.setDataProvider(dataProvider);

当我从数据库中删除一些数据时,它不会立即刷新。我必须刷新我的页面才能看到差异。

dao.deletePerson(...);
dataProvider.refreshAll();

refreshAll() 根本不起作用。如何刷新?

【问题讨论】:

  • 如果有一天内存消耗成为问题,您应该切换到自己的数据提供程序(例如,使用 fetch 和 count 回调)直接从数据库查询但分页。
  • @SteffenHarbich 开发迷你项目来学习 Vaadin,但我会考虑。谢谢。

标签: vaadin vaadin8 vaadin-grid


【解决方案1】:

解决了。

dataProvider.getItems().remove(item); // Removed item from list
dao.deletePerson(...); // and removed it from my database too

之后:

 dataProvider.refreshAll();

编辑:

这不是最好的解决方案。

如果有一天内存消耗成为问题,您应该切换到自己的数据提供程序(例如,使用 fetch 和 count 回调)直接从数据库查询但分页。

——@Steffen Harbich's Comment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多