分頁,很常見的,記錄下我的分頁方式:
頁面代碼,很簡單:
<body class="easyui-layout">
<div id="mainPanle" class="centerDiv" data-options="region:'center'">
<table id="dg"></table>
</div>
</body>
js代碼,稍微複雜點:
$(document).ready(function(){
loadGrid();
});
function loadGrid(){
$('#dg').datagrid({
height:498,
striped: true,
pagination: true,
pageList:[10,20,30,40],//每頁的個數
loadMsg:'數據加載中,請稍後……',
url:'bookAction!findPageBooks',
rownumbers:true,
singleSelect:true,
columns:[[
{field:'id',title:'書號',width:100},
{field:'name',title:'書名',width:100},
{field:'version',title:'版本',width:100},
{field:'publishedAt',title:'出版時間',width:100},
{field:'createdBy',title:'創建人',width:100},
{field:'createdAt',title:'創建時間',width:100},
{field:'updatedBy',title:'更新人',width:100},
{field:'updatedAt',title:'最後更新時間',width:100}
]]
});
}
java方法:
public String findPageBooks(){
log.info("進入到BOOK ajax findPageBooks方法...");
System.out.println("進入到BOOK ajax findPageBooks方法...");
System.out.println("page = " + this.getPage());
System.out.println("rows = " + this.getRows());
System.out.println("fromNum = " + this.getFromNum());
System.out.println("toNum = " + this.getToNum());
String listJsonStr;
try {
bookQueryModel = new BookQueryModel();
// bookQueryModel.setSortName("id");
// bookQueryModel.setSortOrder("asc");
listJsonStr = bookService.findBooksByPage(bookQueryModel, this.getFromNum(), this.getToNum());
CommonUtils.renderJson(response, listJsonStr);
System.out.println("listJsonStr = " + listJsonStr);
} catch (IOException e) {
e.printStackTrace();
return "error";
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return null;
}
service方法:// 註解是爲了消除錯誤:"No Session found for current thread"
// 這裏涉及到spring版本的問題
@Transactional
public String findBooksByPage(BookQueryModel bookQueryModel,
final int fromNum, final int toNum) throws Exception {
String dataSQL = "SELECT * FROM P_BOOK WHERE 1=1 ORDER BY "
+ bookQueryModel.getSortName() + " "
+ bookQueryModel.getSortOrder() + " limit " + fromNum + ","
+ toNum;// 加上數據條數限制
String totalSQL = "SELECT COUNT(*) FROM P_BOOK WHERE 1=1";// 要加上查詢的條件
return JacksonUtils.object2JsonStr(commonDao.queryPageResultBySQL(dataSQL, totalSQL,PBook.class));
}
common dao方法:
public PageModel queryPageResultBySQL(String dataSQL, String totalSQL, Class<?> cls) {
PageModel pageModel = new PageModel();
System.out.println("dataSQL = " + dataSQL);
System.out.println("totalSQL = " + totalSQL);
List<Object> dataList = null;
List<Object> totalList = null;
int totalNum = 0;
try {
dataList = getCurrentSession().createSQLQuery(dataSQL).addEntity(cls).list();
totalList = getCurrentSession().createSQLQuery(totalSQL).list();
totalNum = Integer.valueOf(String.valueOf(totalList.get(0))).intValue();
pageModel.setTotal(totalNum);
pageModel.setRows(dataList);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return pageModel;
}
pageModel類:
package com.frl.practice.common.model;
import java.util.List;
public class PageModel {
private List<Object> rows;
private int total;
public List<Object> getRows() {
return rows;
}
public void setRows(List<Object> rows) {
this.rows = rows;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
}