2017-08-11 10 views
0

私はVaadin 8でGridを使って遅延読み込みを実装しようとしていますが、空のテーブルしか表示されません。何が間違っていますか?また、ロードするアイテムの数(制限)をたとえば20個のアイテムに設定するにはどうすればよいですか(デフォルトは40個です)。Java、Vaadin 8、グリッドで遅延読み込み

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

カウントとフェッチコードをデバッグしましたか?返されるカウントは何ですか?findAllはImageオブジェクトを返しますか? –

+0

はい、カウントを取得してコードを取得しました。イメージオブジェクトはフェッチコードによって返されます。 –

答えて

1

私は列を追加しませんでした。それがテーブルが空だった理由です。 このように動作します:

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); 
関連する問題