1.下面代码解释
store.load({params:{start:0,limit:10}});
start,limit这两个参数来进行分页的。
start表示开始记录数,limit表示一页的记录数。
当store第一次load的时候,start=0,limit=10;
当点击翻页按钮时,store进行load,此时 start=start+pageSize。
如果pageSize=10,那么第二页start=10。
store代码
/*
* ClassName 用户数据集
*/
Ext.define("AM.store.UserStore",{
extend:'Ext.data.Store',
model:'AM.model.UserModel',
pageSize:10,//每页显示10条记录
//autoSync:true,//与服务器同步
proxy:{
type:"ajax",
url:"accountAction_query.action",
reader:{
type:"json",
root:"rows",
totalProperty :'totalCount'
},
writer:{
type:"json"
}
},
autoLoad:true
});
后台的代码:
public void query() throws Exception{
int start = Integer.parseInt(ServletActionContext.getRequest().getParameter("start"));
int limit = Integer.parseInt(ServletActionContext.getRequest().getParameter("limit"));
List<Account> accounts = accountService.findByPageFirst("from Account", start, limit);
List<AccountF> accountfs = new ArrayList<AccountF>();
int i = accountService.getTotalNumber();
for(Account a : accounts){
accountfs.add(Account2AccountF.turn(a));
}
result.put("totalCount", i);
result.put("rows", accountfs);
JSONObject jsonObject = new JSONObject();
String t = jsonObject.fromObject(result).toString();
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(t);
}
注意这里的后台的分页的时候有两种普遍存在的形式,一种是按照第几页进行分页,另一种是按照第几条进行分。 extjs用的是第几条进行分的。
第几页:(假如每页10个)
传递的参数是1,10 2,10 3,10 4,10 5,10 6,10
第几条:
传递的参数是0,10 10,10 30,10 40,10 50,10 60,10