Handling tons of data – LazyDataModel
dataTable
provides support for displaying tons of data by enabling lazy loading. In order to handle large datasets, a data model needs to be implemented based on org.primefaces.model.LazyDataModel
to support pagination, sorting, filtering, and live scrolling.
How to do it...
First, the lazy
attribute should be set to true
for lazy loading to be enabled for the table, and the abstract load method should be implemented in org.primefaces.model.LazyDataModel
. We must also implement getRowData
and getRowKey
when selection is enabled in the table. The lazy data model should be constructed with the list of Car
instances, and it should be bound to dataTable
.
List<Car>cars = new ArrayList<Car> (millions of cars); LazyDataModel<Car>lazyModel = new LazyCarDataModel(cars);
The table calls the load
method implementation with the following parameters when paging, sorting, or filtering actions occur.
first
: Index of the first data to displaypageSize...