Java,Vaadin 8,使用网格延迟加载
Java, Vaadin 8, lazy loading with grid
我正在尝试在 Vaadin 8 中使用 Grid 实现延迟加载。但它只显示一个空 table。我做错了什么?另外,如何将要加载的项目数(限制)设置为例如 20 项(默认为 40 项)?
private Grid<Image> makeLazyTable()
{
Grid<Image> grid = new Grid<Image>();
DataProvider<Image, Void> dataProvider = DataProvider.fromCallbacks(
query -> {
int offset = query.getOffset();
int limit = query.getLimit();
OffsetRequest request = new OffsetRequest();
request.setLimit(limit);
request.setOffset(offset);
List<QuerySortOrder> sort = query.getSortOrders();
return ImagesRepository.findAll(request, sort);
},
query -> ImagesRepository.getImageCount()
);
grid.setDataProvider(dataProvider);
return grid;
}
我没有添加任何列。这就是 table 为空的原因。
这样就可以了:
Column<Image, String> filenameColumn = grid.addColumn(Image::getFilename);
Column<Image, String> orientationColumn = grid.addColumn(Image::getOrientation);
Column<Image, String> latitudeColumn = grid.addColumn(Image::getLatitude);
Column<Image, String> longitudeColumn = grid.addColumn(Image::getLongitude);
我正在尝试在 Vaadin 8 中使用 Grid 实现延迟加载。但它只显示一个空 table。我做错了什么?另外,如何将要加载的项目数(限制)设置为例如 20 项(默认为 40 项)?
private Grid<Image> makeLazyTable()
{
Grid<Image> grid = new Grid<Image>();
DataProvider<Image, Void> dataProvider = DataProvider.fromCallbacks(
query -> {
int offset = query.getOffset();
int limit = query.getLimit();
OffsetRequest request = new OffsetRequest();
request.setLimit(limit);
request.setOffset(offset);
List<QuerySortOrder> sort = query.getSortOrders();
return ImagesRepository.findAll(request, sort);
},
query -> ImagesRepository.getImageCount()
);
grid.setDataProvider(dataProvider);
return grid;
}
我没有添加任何列。这就是 table 为空的原因。 这样就可以了:
Column<Image, String> filenameColumn = grid.addColumn(Image::getFilename);
Column<Image, String> orientationColumn = grid.addColumn(Image::getOrientation);
Column<Image, String> latitudeColumn = grid.addColumn(Image::getLatitude);
Column<Image, String> longitudeColumn = grid.addColumn(Image::getLongitude);