分类: 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 } }); }