1
7
你基本上试过了吗?
|
2
1
tl;dr:不能。网格使用数据提供程序获取要显示的数据块(因此是计数/限制/偏移)。事实上,存在渴望的数据源后端(直接设置项目),这只是为了让拥有渴望数据的网格更容易。 所以这里的解决方案就是从实际的源(存储库等)中提取数据。所以在你的例子中是这样的:
或者通过任何方式,使之简单化。 |
3
1
所有数据提供程序的实现上面提到的fetch(..)方法。也就是说,这个答案是普遍的。 还有其他方法,您也可以这样做:
另请参见: Use filtered dataProvider contents when FileDownloader is called in Vaadin 与上面提到的fetch(..)方法不同的是,datacommunicator.fetchitemswithrange将以网格中当前排序和筛选的方式提供项目。 如果dataprovider是listdataprovider的实例,则可以并推荐以下内容
所以这个问题至少有三个正确答案。哪一个最合适取决于应用程序。 值得提醒的是,使用fetch(..)或fetchitemswithrange(..)从延迟加载的数据提供程序获取所有项可能会导致巨大的、占用内存的数据库查询(即获取整个内容)。你可能不应该这样做。这就是为什么getitems()只在ListDataProvider中实现,而不包含在通用DataProvider接口中的原因。 |