ext与后台打交道的分页实现

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:18:17
我用的是spring+hibernate+struts2+ext
查询数据库里面所有数据,之前action里面是这样写的:
public String allClientView() {
List<Client> clientlist = clientManager.queryClient();
JSONArray array = new JSONArray();
for (Client client1 : clientlist) {
JSONObject jsonObejct = new JSONObject();
jsonObejct.put("id", client1.getId());
jsonObejct.put("name", client1.getName());
jsonObejct.put("tel", client1.getTel());
jsonObejct.put("address", client1.getAddress());
array.add(jsonObejct);
}
JSONObject result = new JSONObject();
result.put("results", clientlist.size());
result.put("rows", array);
json = result.toString();
return SUCCESS;
}
dao里面是这样写的:
public List queryClient() {
return getHibernateTemplate().loadAll(Client.class);
}
这样在ext里面是整个页面,现在希望分页,应该怎么改?哪位大侠帮下忙啊!

和后台打交道的ext应用,需要从后台返回到前台一个JsonStore. 但是在分页的中用到什么样的数据,就必须把它封装在这个Json

改一下你的json结构就行,比如{"count":"5","dl":[],"id":"10","page":"5"}
其中dl项就是当前页的数据
count是当前页显示的数据行数
page是总页数
count*page就是总页数
不过dl返回的是一个object数组,你要自己转换成二维数组

var json = {"count":"5","dl":[],"id":"10","page":"5"};
var data =[];
for(var i=0;i<dl.length;i++{
data[i]=new Array(dl[i].c1,dl[i].c2,dl[i].c3)
}
store.loadData(data);//数据源从新载入数据,显示到grid中
这样就ok了