Dorado分页

Dorado翻页通常使用的UI是DataTable + Pagepilot。

如果使用的DataSet是AutoSqlDataset,则很容易实现分页,只需要将DataTable和Pagepilot绑定到同一个Dataset就可以了,不需要写任何java和javascript代码。

如果使用的DataSet是CustomDataset,则实现分页会稍稍写一本分java代码,步骤如下:

1.将DataTable和Pagepilot绑定到同一个Dataset。

2.为DataSet创建监听器,覆盖public void afterLoadData(Dataset dataset)方法,实例代码如下:

  public void afterLoadData(Dataset dataset)
     throws Exception {
     //记录集

     List ls = new ArrayList(dataset.getPageSize());
     int pageIndex = dataset.getPageIndex();
     //总页数
     //总记录数
     DBStatement dbs = new DBStatement();
     String countSql = "select count(1) from employee";
     dbs.setSql(countSql);
     int recordCount = dbs.query().getInt(0);
     dbs.close();
    
     String sql = "select * from employee,dept where employee.dept_id=dept.dept_id";
     dbs.setSql(sql);
     List allResult = dbs.queryForList();
     PagingHelper paging = new PagingHelper(dataset.getPageSize(), dataset.getPageIndex(), allResult.size());
     List result = allResult.subList(paging.getFromIndex(), paging.getToIndex()); // 当页的记录

     for(int i=0; i<result.size(); i++){
        VariantSet vs = (VariantSet)result.get(i);
        Employee e = new Employee();
        e.setEmployee_id(vs.getString("employee_id"));
        e.setEmployee_name(vs.getString("employee_name"));
        e.setDept_id(vs.getString("dept_id"));
        e.setDept_name(vs.getString("dept_name"));
        e.setSex(vs.getString("sex"));
        e.setBirthday(vs.getDate("birthday"));
        e.setMarried(vs.getString("married"));
        e.setSalary(vs.getFloat("salary"));
        e.setDegree(vs.getString("degree"));
        e.setEmail(vs.getString("email"));
        e.setWeb(vs.getString("web"));
        e.setCmnt(vs.getString("cmnt"));
        ls.add(e);
     }
    
     dbs.close();
     int pageCount = paging.getPageCount();
     //设置Dataset
     dataset.fromDO(ls);
     dataset.setPageCount( pageCount );
  }

总结:

1.Dorado的分页是DataSet自己实现的,需要2个重要数据,当前页面所用的DataSet记录和总的记录页数。

2.有了当前页面所用的DataSet记录,DataTable就有了可以展示的数据;有了总的记录数,Pagepilot就可以展示分页标签了。

3.PagingHelper的功能是根据PageIndex、PageSize、TotalRow来计算FromIndex、PageCount、ToIndex。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值