我在 Primefaces 中为数据表使用惰性模型。对于导出,我想获取所有数据,我指的是用于计算行数的数据。
我可以使用以下方法获取当前显示在数据表页面上的所有数据:
List<Info> data = (List<Info>) lazyModel.getWrappedData();
但是更多的页面可能会有更多的数据。是否有任何类似于刚才提到的方法来从数据表中获取所有数据?
我试过使用它,但它总是返回 null:
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
.findComponent(":form:infoTable");
List<Info> data = dataTable.getFilteredValue();
我尝试过的另一种方法是进行与计算行数几乎相同的查询,不同之处在于我得到的是对象列表,而不是行数,但为此我还需要一个过滤器。如果这可能是一个解决方案,我如何获得用于延迟加载的过滤器?
一般来说,我该如何解决这个问题?
最佳答案
解决办法是得到一个过滤器。 我已经从惰性模型中获取了我的自定义过滤器,并使用它从覆盖的加载方法中进行查询,所以唯一的区别是我没有首先使用参数和页面大小。
解决方案中没有真正新的东西,我只需要得到过滤器:
Map<String, Object> filters = ((MyLazyDataModel) lazyModel).getFilters().getFilters();
关于jsf - Primefaces 获取惰性模型中的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32840994/