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。

你可能感兴趣的:(JavaScript,sql,UI,Web)