2017-08-22 59 views
0

我有一个数据提供程序从数据库中提取数据,我将数据保存为一个列表。刷新网格数据(Vaadin 8)

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

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

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

refreshAll()根本不起作用。我怎样才能刷新它?

+0

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

+0

@SteffenHarbich开发迷你项目来学习Vaadin,但我会考虑它。谢谢。 – Murat

回答

0

解决了它。

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

之后:

dataProvider.refreshAll(); 

它的工作原理!