ecside 数据库分页后台代码如下:
public int rowStart = 0;//每页的起始位置
public int rowEnd = 20;// 每页显示多少页
/**
* 判断是否要加上记录限制,全部导出,则不需要加limit
*
* @param sql
* @return
*/
private String limitRange(String sql) {
HttpServletRequest request = ServletActionContext.getRequest();
Limit limit = RequestUtils.getLimit(request);
// WebContext context = new HttpServletRequestContext(request);
String exportPage = request
.getParameter(TableConstants.EXPORT_PAGE_FLAG);
Boolean exportAll = "true".equalsIgnoreCase(exportPage);
if (limit.isExported() && !exportAll) {// 是全部导出,,如pdf全部导出
} else {
sql = sql + " limit " + rowStart + "," + rowEnd;
}
return sql;
}
public void sqlpage(String strsql) throws Exception {
ResultSet rsPage = null;
HttpServletRequest request = ServletActionContext.getRequest();
Limit limit = RequestUtils.getLimit(request);
Sort sort = limit.getSort();
Map sortValueMap = sort.getSortValueMap();
int totalRows = RequestUtils.getTotalRowsFromRequest(request);
if (totalRows < 0) {
rsPage = this.getReportQueryManger().getReportRecords(strsql);
while (rsPage != null && rsPage.next()) {
totalRows = rsPage.getInt("totalnum");
}
}
limit.setRowAttributes(totalRows, DEFAULT_PAGE_SIZE);
// offset表示数据编号的起始号.
int offset = 0;
rowStart = limit.getRowStart() + offset;
rowEnd = limit.getRowEnd() - limit.getRowStart();
}
前台设置为retrieveRowsCallback="limit"