分类: JavaScript
2013-01-26 10:43:28
最近要做extjs的表格,然后需要用到一个功能,就是利用浏览器返回的数据进行本地分页,在extjs给出的demo之中,确实有提供本地分页的demo,本人就是利用这个本地demo来实现本地分页的功能的。在extjs给出的demo里面找到locale/multi-lang.html,在你的工程里面引入demo中的PagingMemoryProxy.js,接下来还是跟平时进行表格的交互填充一样,首先建立一个store
var OrderSearchStore = new Ext.data.Store({
proxy:new Ext.data.PagingMemoryProxy(),
reader : new Ext.data.ArrayReader({}, ['dealNo', 'tel', 'name',
'createTime', 'state'])
});
然后创建一个拥有这个store的grid
var OrderSearchGrid = new Ext.grid.GridPanel({
title : '预购信息',
width : 700,
height : 200,
store : OrderSearchStore,
trackMouseOver : false,
disableSelection : true,
loadMask : true,
// grid columns
columns : [{
id : 'dealNo', // id assigned so we can apply
// custom css (e.g.
// .x-grid-col-topic b { color:#333
// })
header : "订单号",
dataIndex : 'dealNo',
sortable : true
}, {
id : "tel",
header : "电话",
dataIndex : 'tel',
sortable : true
}, {
header : "客户名称",
id : "name",
dataIndex : 'name',
sortable : true
}, {
id : 'createTime',
header : "售出时间",
dataIndex : 'createTime',
sortable : true
}
// , {
// id : 'state',
// header : "状态",
// dataIndex : 'state',
// sortable : true,
// renderer : renderOrder
// }
],
viewConfig: {
forceFit:true
},
// paging bar on the bottom
bbar : OrderSearchPagingBar
});
这里要特别注意的一点是,在获取浏览器得到的json数据之后,要对数据进行一些格式化的处理,实例代码如下,
var root = result.root; var size = root.length var OrderSearchFormData = new Array(); for (var i = 0; i < size; i++) { var temp = new Array(); temp.push(root[i]['dealNo']); temp.push(root[i]['tel']); temp.push(root[i]['name']); temp.push(root[i]['createTime']); temp.push(root[i]['state']) OrderSearchFormData.push(temp); }//传给PagingMemoryProxy的数据必须是[[1,2,3],[1,2,3]],这样格式的,这也是上面为什么进行for循环,进行数据重新构造的原因,直接是//json数据的话,是解析不了的,这是本人的实践所得 OrderSearchStore.proxy = new Ext.data.PagingMemoryProxy(OrderSearchFormData);//这里就可以开始load数据了。 OrderSearchStore.load({ params : { start : currentPage, limit : pageSize } }); }