Datagrid接收的json数据格式有两种: 不分页数据: [ {key:value,…},//每个json对象就是一条记录 {key:value,…} ]//元素的数量就是总记录数
分页数据: { total:100,//总记录数 rows:[ {},{} ]//当前页的json数组数据 }
请求参数中自动提交了两个参数page(当前页码)和rows(每页显示的最大记录数)。 服务器返回json数据后,客户端将自动显示数据列表。
客户端分页的相关计算和显示全部都交给了Datagrid,我们只需要在服务端拿到page和rows,根据他们查询当前页对应的数据,将数据以json格式返回交给Datagrid即可。
PagingAndSortingRepository接口中提供了分页方法:Page findAll(Pageable pageable)
Pageable接口对象,Spring Data提供了一个默认的实现类PageRequest: 构造方法中有两个参数: 参数1:page:当前页码 参数2:size:每页最大的记录数
public PageRequest(int page, int size) { this(page, size, null); }Page接口对象,Spring Data提供了一个默认的实现类PageImpl,提供了大量方法。包含对应total和rows的方法。
//Returns the total amount of elements,获取总记录数 public long getTotalElements() { return total; } //Returns the page content as {@link List},返回分页记录 public List<T> getContent() { return Collections.unmodifiableList(content); }常用方法:
getNumber():获取当前页码 getSize():获取当前页显示的最大记录数 getTotalPages():获取总的页数 List getContent();获取当前页的数据列表。新闻热点
疑难解答