3

我在 Primefaces 中对数据表使用惰性模型。对于导出,我想获取所有数据,我的意思是用于计算行数的数据。

我可以使用以下方法获取当前显示在数据表页面上的所有数据:

List<Info> data = (List<Info>) lazyModel.getWrappedData();

但更多页面上可能会有更多数据。有没有类似于刚才提到的从数据表中获取所有数据的方法?

我试过使用它,但这总是会返回 null:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
            .findComponent(":form:infoTable");
List<Info> data = dataTable.getFilteredValue();

我尝试的另一种方法是只进行几乎与我为计算行数所做的查询相同的查询,不同之处在于我得到对象列表,而不是行数,但为此我还需要一个过滤器。如果这可能是一个解决方案,我如何获得用于延迟加载的过滤器?

一般来说,我该如何解决这个问题?

4

1 回答 1

1

解决办法是买一个过滤器。我从惰性模型中获取了我的自定义过滤器,并用它来从覆盖的加载方法中查询,所以唯一的区别是我没有首先使用参数和页面大小。

解决方案中没有什么新东西可以展示,我只需要得到过滤器:

Map<String, Object> filters = ((MyLazyDataModel) lazyModel).getFilters().getFilters();
于 2015-09-30T09:04:47.527 回答