Vaadin 8网格分页

时间:2018-07-27 18:55:28

标签: java vaadin vaadin8 vaadin-grid

我正在尝试实现类似于Vaadin 8 Grid的表格的分页。 我尝试使用插件https://vaadin.com/directory#!addon/pagination,但不适用于Vaadin 8 Grid。有没有人尝试实现分页? 我正在使用如下所示的Java Grid API:-

    msgGrid = new Grid();

    if (input != null) {
        msgGrid.setItems(input);
    }
    msgGrid.setColumnReorderingAllowed(true);
    msgGrid.setHeaderVisible(true);
    msgGrid.setResponsive(true);
    msgGrid.setRowHeight(25);

感谢您分享一些信息。 TIA

1 个答案:

答案 0 :(得分:3)

我们在Vaadin8项目中使用了此特定插件,没有任何问题。 这是示例代码:

Grid<Sample> datagrid;
Pagination pagination;


datagrid = new Grid<>();  
...
PaginationResource paginationResource = PaginationResource.newBuilder().setPage(1).setLimit(limit).build();
pagination = new Pagination(paginationResource);
pagination.setItemsPerPage(10, 20, 50, 100);
pagination.addPageChangeListener( event -> onPageChange(event.fromIndex(), event.toIndex()) ); 

/**
 MyResultSet is a structure containing
 - a list of <Sample> beans (accessible by getList())
 - a integer with the total number of records (accessible by getTotalnumber())
 */
private void onPageChange(int fromIndex, int toIndex) {     
        MyResultSet data = loadSampleRecords(fromIndex, toIndex);
        this.pagination.setTotalCount( data.getTotalnumber() ); 
        this.datagrid.setItems( data.getList() );
        this.datagrid.getDataProvider().refreshAll();
        this.datagrid.scrollToStart();  
    }