Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1146329
  • 博文数量: 103
  • 博客积分: 1897
  • 博客等级: 上尉
  • 技术积分: 1717
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-19 21:02
文章分类

全部博文(103)

文章存档

2013年(19)

2012年(84)

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

					}

阅读(3626) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~