我已经实现了DataTable - Lazy Loading示例。与this one类似,但我从数据库加载数据 - 但这并不重要。
所以我有:
public class LazyCarDataModel extends LazyDataModel<Car> {
...
}
和
public class TableBean {
private LazyDataModel<Car> lazyModel;
...
}
在某个地方,非常深入的procject我需要知道这个Car list的当前页面是什么样的。所以我这样做:
List<T> currentCarList = (List<T>)getTestTableBean().getLazyModel().getWrappedData();
我有。最后加载的汽车(目前在浏览器中可见)。但是,我还需要看到,接下来将会是什么以及previos页面。我的意思是在用户点击“下一页”之前会有一个警告按摩“注意!下一页会有法拉利!” :d
所以,最后我的问题: 如何在使用延迟加载时获取next和previos页面?
答案 0 :(得分:1)
您可以在LazyDataModel#load()
方法中自行跟踪。
private List<Car> prev;
private List<Car> next;
@Override
public List<Car> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) {
this.setRowCount(service.count());
this.prev = service.list(first - pageSize, pageSize);
this.next = service.list(first + pageSize, pageSize);
return service.list(first, pageSize);
}
public List<Car> getPrev() {
return prev;
}
public List<Car> getNext() {
return next;
}
无论您需要什么,只需执行
List<Car> prev = tableBean.getLazyCarDataModel().getPrev();
// ...