Java,Vaadin 8,延迟加载网格 [英] Java, Vaadin 8, lazy loading with grid

查看:127
本文介绍了Java,Vaadin 8,延迟加载网格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Vaadin 8中使用Grid进行延迟加载.但是它仅显示一个空表.我做错了什么?另外,如何将要加载(限制)的项目数设置为例如20个项目(默认为40个项目)?

I am trying to implement lazy loading with Grid in Vaadin 8. But it only shows an empty table. What do I do wrong? Also, how do I set the number of items to load (limit) to for example 20 items (the default is 40 items)?

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;
}

推荐答案

我没有添加任何列.这就是表格为空的原因. 这样工作:

I did not add any columns. That was the reason why the table was empty. This way it works:

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);

这篇关于Java,Vaadin 8,延迟加载网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆