如果SqlDataProvider不能满足分页实现的需求,可以使用下面的方法来定制
1、java示例代码
public List<Row> getPage(String whereClause) throws DaoException { int pageNum = context.getIntParameter("pageNum", 1); PagingBuilder pd = new PagingBuilder(); pd.setTableName("dm_customer"); pd.setPageSize(context.getIntParameter("pageSize", 15)); pd.setPageNum(pageNum); pd.setWhereClause(whereClause); String sql = pd.build(); if (pageNum == 1) { context.setRequestAttribute("total", DBUtils.count("select count(*) from dm_customer where 1=1 " + whereClause)); } return new Query(sql).listAll(); }
2、jsp示例代码
<f:WhereClause var="wc"> <f:Like columnName="name" value="${param.keyword}" /> </f:WhereClause> <f:BeanInvoker varResult="rs" method="getPage" name="dmPagingBean"> <f:Argument value="${wc}" /> </f:BeanInvoker> <f:GridView items="${rs}"> <f:DataColumn dataField="name" headerText="客户名称" width="300" /> <f:DataColumn dataField="address" headerText="地址" width="250" /> <f:DataColumn dataField="tel" headerText="联系电话" /> <f:DataColumn dataField="fax" headerText="传真" /> <f:DataColumn dataField="email" headerText="电子邮箱" /> </f:GridView> <f:PageInfo total="${total}" />
温馨提示:PageInfo的total属性为新增属性,如果您的框架版本较旧,请使用FSR Dev更新一下依赖。