在这里我将前台和服务器的代码都拿了过来。大家有什么看不懂的地方可以交流。分页的地方就这几点。
1、配置grid中的bbar
var grid= new Ext.grid.GridPanel({
bodyStyle:'border:1px solid',
height:150,
width:600,
store:store,
cm:cm,
bbar:new Ext.PagingToolbar({ //底部条
pageSize:5,
store:store,
displayInfo:true,
displayMsg:'显示{0}到{1}条记录,共{2}条数据',
emptyMsg:'没有记录',
beforePageText : "Page",
afterPageText: "of {0}",
firstText : "First Page",
prevText : "Previous Page",
nextText : "Next Page",
lastText : "Last Page",
refreshText :"Refresh"
})
});
bbar截图:
2、reader中配置总共的数据集和返回来的数据
reader:new Ext.data.JsonReader({
totalProperty:'totalProperty',
root:'root'
3、store的load方法传递start和limit参数
store.load({params:{start:0,limit:5}});
服务器业务处理: (由于大家用到的框架和技术不同。根据自己的实际情况来写)
传递参数到前台:
map.put("root",list);
map.put("totalProperty",service.getTotal(jsoninfo));
接收参数:
String jsoninfo = this.getRequest().getParameter("jsoninfo");
int start=Integer.parseInt(this.getRequest().getParameter("start"));
int limit=Integer.parseInt(this.getRequest().getParameter("limit"));
得到sql对象以及查询设置:
Session session = this.getSessionFactory().openSession();
StringBuffersb = new StringBuffer();
Query q = session.createSQLQuery(sb.toString());
q.setFirstResult(0);
q.setMaxResults(5);
System.out.println(q.list().size());
查询出来的对象转换:
// 将数组的list对象转换成装有Gameinfo实体类的list对象(主表)
private List<GameInfo> arrToObj(List pList) {
List<GameInfo> list = new ArrayList<GameInfo>();
for (int i = 0; i < pList.size(); i++) {
Object[] arr = (Object[]) pList.get(i);
GameInfo gi = new GameInfo();
gi.setService_id(arr[0] == null ? "" : arr[0].toString());
gi.setCase_no(arr[1] == null ? "" : arr[1].toString());
gi.setRealname(arr[2] == null ? "" : arr[2].toString());
gi.setPersonalid(arr[3] == null ? "" : arr[3].toString());
gi.setPhoneno(arr[4] == null ? "" : arr[4].toString());
list.add(gi);
}
return list;
}
Sql的拼装:
// 构建sql语句
public String createsql(String fieldsinfos) throws Exception {
StringBuffer sb = new StringBuffer();
String ss = "select service_id,inline_type,realname,phoneno,mainaccountid,servicegame,gameaccount,questiontype,inline_time,created_time,pcall_id,closed_csrnamefrom T_SERVICE_ITEM where 1=1";
sb.append(ss);
JSONObject json = JSONObject.fromObject(fieldsinfos); // 转换JSON对象
String mohu = String.valueOf(json.getBoolean("mohu"));
String caseno = json.getString("case_no"); // 案件编号
String realname = json.getString("realname"); // 玩家姓名
String phoneno = json.getString("phoneno"); // 联络电话
String personalid = json.getString("personalid"); // 身份证字号
String mainaccountid = json.getString("mainaccountid"); // 主账号
String gameaccount = json.getString("gameaccount"); // 服务账号
String current_status = json.getString("current_status"); // 案件处理状态
String created_csrname = json.getString("created_csrname"); // 案件处理专员
// 判断传递过来的字段是否为空
existly("case_no", caseno, sb, mohu);
existly("realname", realname, sb, mohu);
existly("phoneno", phoneno, sb, mohu);
existly("personalid", personalid, sb, mohu);
existly("mainaccountid", mainaccountid, sb, mohu);
existly("gameaccount", gameaccount, sb, mohu);
existly("created_csrname", created_csrname, sb, mohu);
existly("current_status", current_status, sb, mohu);
// 建单专员和案件处理装填未在表中发现
String sql = sb.append(";").toString();
return sql;
}