前台js,给table绑定分页控件:
$(function(){
// 设置分页控件
$('#odsExternalConfigGrid').datagrid('getPager').pagination({
pageSize : 15,// 每页显示的记录条数,默认为15
pageList : [ 15, 20, 30, 40, 50 ],// 可以设置每页记录条数的列表
beforePageText : '第',// 页数文本框前显示的汉字
afterPageText : '页 共 {pages} 页',
displayMsg : '当前显示 {from} - {to} 条记录 共 {total} 条记录',
onSelectPage : function(pageNumber, pageSize) {
$("#page_size").attr("value", pageSize);
$(this).pagination('loading');
search(pageNumber, pageSize);//切换页数后调用后台查询
$(this).pagination('loaded');
},
onBeforeRefresh : function(pageNumber, pageSize) {
$(this).pagination('loading');
},
onRefresh : function() {
$(this).pagination('loaded');
}
});
});
调用后台查询数据结果:
function loadTestData(pageNumber, pageSize){
var provCodeId = $("#provCodeId").combobox('getValue');
var tableCodeId = $("#tableCodeId").combobox('getValue');
$.ajax({
type:"post",
url:"sExtlConfig!findOdternalCfgList.action",
async:false,
dataType : "json",
data:{tableCodeId:tableCodeId,systemCodeId:systemCodeId,page:pageNumber,rows:pageSize},
cache:false,
success:function(data,status){
var json = eval("(" + data + ")");
if (json.total <= 0) {
$('#odsExternalConfigGrid').datagrid('loadData',{total: 0, rows: [] });
$.messager.alert('系统提示', '没有查询数据!', 'info');
}
$('#odsExternalConfigGrid').datagrid('loadData', json);//json 是后台返回的json字符串包含total和rows,如果这样用的话,后台必须是total //和rows这两个参数
//$('#odsExternalConfigGrid').datagrid('loadData', json.rows);//这样用的话,对应后台的rows也可以改为其他名字,比如rowss,对应前台的 //json.rows改为json.rowss
// 修改当前页文本框值var pageNumber1 = $('#odsExternalConfigGrid').datagrid('getPager').pagination('options').pageNumber;if (pageNumber == 1 && pageNumber1 != 1) {$('#odsExternalConfigGrid').datagrid('getPager').pagination('options').pageNumber = 1;$('#odsExternalConfigGrid').datagrid('getPager').pagination('refresh');}}});}
后台操作需要返回当前查看页的数据集合,和 满足查询条件的不分页情况下的记录总数.Action层:
public String findOdternalCfgList(){ try { String provCode = this.getRequest().getParameter("provCodeId"); String tableCode = this.getRequest().getParameter("tableCodeId"); String systemCode = this.getRequest().getParameter("systemCodeId"); String pageStr = this.getRequest().getParameter("page"); int page = (pageStr == null || "".equals(pageStr)) ? Constant.FIRST_RESULT : Integer.parseInt(pageStr); String rowStr = this.getRequest().getParameter("rows"); int row = (rowStr == null || "".equals(rowStr)) ? Constant.PAGE_SIZE : Integer.parseInt(rowStr); List<Map<String, Object>> inputList = odsExternalConfigService.findOdsExtelCfgList(provCode, tableCode, systemCode,page,row); long total = odsExternalConfigService.findOdsExternalCfgList(provCode, tableCode, systemCode); Map<String, Object> resultMap = new HashMap<String, Object>(); resultMap.put("total", total); resultMap.put("rows", inputList); Gson gson = new Gson(); resultList = gson.toJson(resultMap).toString(); } catch (Exception e) { e.printStackTrace(); } return "resultList"; }
DAO层:
//返回指定页数的记录集合
@SuppressWarnings("unchecked") @Override public List<Map<String, Object>> findOdsExternalCfgList(String hql, int page, int row) {
//如下查询返回的结果是:[{id=T123445,name=abc}, {id=T3445,name=bc}] 形式的键值对集合 Query query=getSession().createSQLQuery(hql).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); query.setFirstResult(page); query.setMaxResults(row); List<Map<String, Object>> tempList = query.list(); return tempList; }
//返回总记录数 @Override public long findOdsExternalCfgList(String provCode, String tableCode, String systemCode) { StringBuffer sb = new StringBuffer(); sb.append("select count(*) from OdsExternalConfig oec, MetaObjectTable mot where oec.tableId = mot.id "); if(!StringUtil.isNull(provCode)){ sb.append("and provCode = '"+ provCode +"'"); } if(!StringUtil.isNull(tableCode)){ sb.append("and tableId like '%"+ tableCode +"%'"); } if(!StringUtil.isNull(systemCode)){ sb.append("and systemId = '"+ systemCode +"'"); } Session session = this.getSession(); Query query = session.createQuery(sb.toString()); long total = (Long)query.uniqueResult(); return total; }
版权声明:本文为mycup163原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。