分部分叙述extjs的分页

在这里我将前台和服务器的代码都拿了过来。大家有什么看不懂的地方可以交流。分页的地方就这几点。

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;
    }


你可能感兴趣的:(sql,exception,list,String,null,ExtJs)