在这里我将前台和服务器的代码都拿了过来。大家有什么看不懂的地方可以交流。分页的地方就这几点。
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; }