0 0

extjs 一次加载数据 前台分页问题0

后台拿到的json
[['0','张三','0','15246532154'],['1','李四','0','15246532154'],['2','王五','0','15242342154'],['3','李磊','0','15245678987'],['4','卡卡','0','12321313321'],['5','阿斯达','1','12131312322'],['6','斯巴达','1','11231231231'],['7','李欧','1','23343434343']]


前台ext代码:
/**
 * 前台分页
 */
Ext.onReady(function() {
	
	var sm = new Ext.grid.CheckboxSelectionModel();

	var cm = new Ext.grid.ColumnModel([
			// 序号
			new Ext.grid.RowNumberer(), sm, {
				header : '编号',
				dataIndex : 'id',
				sortable : true,
				type : 'int'
			}, {
				header : '姓名',
				dataIndex : 'name'
			}, {
				header : '性别'

			}, {
				header : '电话',
				dataIndex : 'phone'
			}]);
	var reader = new Ext.data.ArrayReader({}, [{
						name : 'id'
					}, {
						name : 'name'
					}, {
						name : 'sex'
					}, {
						name : 'phone'
					}]);

	var store = new Ext.data.Store({
				reader : reader
			});
	// 读取后台传递于前台数据
	Ext.Ajax.request({
				url : '../test/user2.show',
				method : 'get',
				success : function(response, opts) {
					var obj = Ext.decode(response.responseText);// obj储存响应的数据
					store.proxy = new Ext.data.PagingMemoryProxy(obj) // PagingMemoryProxy()
					// 一次性读取数据
				},
				failure : function() {
					Ext.Msg.alert("读取数据失败");
				}
			});
	// 分页条
	var pagebar = new Ext.PagingToolbar({
				pageSize : 5,// 每页显示条数
				store : store,
				beforePageText : "当前第",
				afterPageText : "页,共{0}页",
				lastText : "尾页",
				nextText : "下一页",
				prevText : "上一页",
				firstText : "首页",
				refreshText : "刷新页面",
				displayInfo : true,
				displayMsg : "当前显示 {0} - {1}条, 共 {2}条",
				emptyMsg : "没有记录"
			});

	var grid = new Ext.grid.GridPanel({
		renderTo : 'grid',
		autoHeight : true,
		store : store,
		mode : "remote",
		cm : cm,
		sm : sm,
		loadMask : {
			msg : '正在加载数据,请稍侯……'
		},
		tbar : pagebar
			
		});
	store.load({
				params : {
					start : 0,
					limit : 5
				}
			});// 按5条记录分布
		
	});


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>前台分页</title>
	<link rel="stylesheet" type="text/css" href="../js/ext-3.3.1/resources/css/ext-all.css" />
	<script type="text/javascript" src="../js/ext-3.3.1/ext-base.js"></script>
	<script type="text/javascript" src="../js/ext-3.3.1/ext-all.js"></script> 
	<script type="text/javascript" src="../js/ext-3.3.1/ext-lang-zh_CN.js"></script> 
	<script type="text/javascript" src="js/PagingMemoryProxy.js"></script> 
	<script type="text/javascript" src="js/diygrid2.js"></script> 
</head>
<body>
<div id="grid" style="height:265px;"></div>
</body>
</html>


页面始终处于加载中,分页数据不显示。求指导。

问题补充:直接将数据写到前台就没问题
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gbk">
        <title>03.grid</title>
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
        <script type="text/javascript" src="../../ext-all.js"></script>
        <script type="text/javascript" src="PagingMemoryProxy.js"></script>
        <script type="text/javascript">
Ext.onReady(function(){
var sm = new Ext.grid.CheckboxSelectionModel(

);
    var cm =  new Ext.grid.ColumnModel([
// 序号
new Ext.grid.RowNumberer(), sm, {
header : '编号',// 列显示的名称
dataIndex : 'id',
sortable : true,// 可排序的
type : 'int'
}, {
header : '姓名',
dataIndex : 'name'
}, {
header : '性别',
dataIndex : 'sex',
renderer : function(value) {
if (value == '0') {
return "<font color='red'>男</span>";
}

else {
return "<font color='red'>女</span>";
}

}
}, {
header : '电话',
dataIndex : 'phone'
}]);

    var data =[
['0','张三','0','15246532154'],
['1','李四','0','15246532154'],
['2','王五','0','15242342154'],
['3','李磊','0','15245678987'],
['4','卡卡','0','12321313321'],
['5','阿斯达','1','12131312322'],
['6','斯巴达','1','11231231231'],
['7','李欧','1','23343434343']
]


    var store = new Ext.data.Store({
        proxy: new Ext.data.PagingMemoryProxy(data),
        reader: new Ext.data.ArrayReader({}, [

                        name : 'id' 
                    }, { 
                        name : 'name' 
                    }, { 
                        name : 'sex' 
                    }, { 
                        name : 'phone' 
                    }
        ])
    });

    var grid = new Ext.grid.GridPanel({
        renderTo: 'grid',
        autoHeight: true,
        store: store,
        cm: cm,
        bbar: new Ext.PagingToolbar({
            pageSize: 3,
            store: store,
            displayInfo: true,
            displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
            emptyMsg: "没有记录"
        })
    });
    store.load({params:{start:0,limit:3}});

});
        </script>
    </head>
    <body>
        <script type="text/javascript" src="../shared/examples.js"></script>
        <div id="grid"></div>
    </body>
</html>
2012年9月25日 11:38

1个答案 按时间排序 按投票排序

0 0

采纳的答案

ArrayReader的用法很简单,但缺点是不支持分页
要分页选用 JsonReader

2012年9月25日 11:45

相关推荐

    extjs前台分页插件PagingStore!

    在ExtJS 3.x版本中,PagingStore是与GridPanel结合使用,使得用户可以逐页加载和浏览数据,而无需一次性加载所有记录,从而减轻服务器压力。 PagingStore的工作原理: 1. **连接数据源**:PagingStore通常与远程...

    Ext前台分页

    在前端开发中,分页是常见的一种数据展示方式,它能有效地管理大量数据,提高页面加载速度,并提供良好的用户体验。本篇文章将详细讲解基于Ext JS框架实现前台分页的原理和方法。 首先,理解“前台分页”概念。前台...

    Extjs4前台前台grid导出excel

    它能够动态加载数据,提供排序、过滤、分页等功能,并且可以自定义列样式和行为。在ExtJS4中,我们可能有以下场景:用户在Grid中查看数据,然后希望将这些数据导出到Excel以便进一步分析或处理。 要实现这个功能,...

    Extjs4中的分页应用结合前后台

    在EXTJS4中,分页应用是实现大数据量展示时必不可少的功能,它可以有效地提高用户体验,减少页面加载时间。本文将详细介绍EXTJS4中如何实现分页,并结合后台进行数据交互。 前台部分: EXTJS4使用`Ext.data.Store`...

    Extjs servlet实现列表显示简单例子

    在前端,创建一个ExtJS的Grid,你需要定义列模型、数据源以及可能的分页配置。列模型指定表格的列头及对应的数据字段,数据源可以是内存中的数组,也可以是远程加载的数据,这里采用后者,通过Servlet获取。分页配置...

    Extjs 性能优化 High Performance ExtJs

    为了提高性能,需要对这些操作进行适当的优化,例如通过分页机制减少数据加载量,使用异步加载技术来提高响应速度等。 #### 九、提示信息的使用 提示信息是与用户交互的重要方式之一,合理的使用可以提高用户体验...

    ExtJs、ASP.net运用Linq to SQL与SQL储存过程交互.

    在实际项目中,当数据量较大时,直接加载所有数据到前端可能会导致页面加载时间过长甚至崩溃,因此需要实现后台分页功能。后台分页的核心在于服务器端只返回当前页的数据,前端负责显示这部分数据并提供翻页功能。在...

    精通JS脚本之ExtJS框架.part2.rar

    9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid 9.3.1 制作第一个EditorGrid 9.3.2 添加一行数据 9.3.3 保存修改结果 9.3.4 验证EditGrid中的数据 9.3.5 限制输入数据的类型 9.4 PropertyGrid属性...

    MVC设计模式实战ExtJS4.2高级组件+SSH2在线投稿系统

    11.实现右键菜单的功能,自定义一个按钮 12.文章预览功能、修改文章功能 13.查看文章评审(重写分页组件的部分方法) 14.完善分页组件、查看文章评审后台功能 15.由菜单树操作右边的工作区域、完成管理员管理文章...

    深入浅出ExtJS第2版

    3.11.2 添加一行数据 56 3.11.3 保存修改结果 58 3.11.4 验证EditGrid中的数据 59 3.11.5 限制输入数据的类型 60 3.12 属性表格控件--PropertyGrid 63 3.12.1 PropertyGrid 64 3.12.2 只能看不能动的Property...

    用ext写的前台源码 有说明文档

    在描述中提到,这个源码是从实际项目中剥离出来的,因此,你可以期待它包含了一些实际应用场景下的实现,比如数据加载、分页、过滤、排序等功能。说明文档应该会解释这些功能的实现细节,帮助你理解和学习如何在自己...

    精通JS脚本之ExtJS框架.part1.rar

    9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid 9.3.1 制作第一个EditorGrid 9.3.2 添加一行数据 9.3.3 保存修改结果 9.3.4 验证EditGrid中的数据 9.3.5 限制输入数据的类型 9.4 PropertyGrid属性...

    SSH框架+Ext技术做前台显示的客户关系管理系统T86.rar

    其数据绑定机制使得前后端数据交换更为便捷,通过Store与Model的配合,可以实现数据的自动加载、更新和保存。同时,Ext的Ext Grid组件能够灵活地展示大量数据,支持分页、排序、过滤等功能,极大地提升了用户体验。 ...

    GoodProject Maven Webapp.zip

    jQuery EasyUI是基于JQuery的一个前台ui界面的插件,功能相对没extjs强大,但页面也是相当好看的,同时页面支持各种themes以满足使用者对于页面不同风格的喜好。一些功能也足够开发者使用,相对于extjs更轻量。 ...

    ExtAspNet_v2.3.2_dll

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    Ext 开发指南 学习资料

    2.8.2. 添加一行,再把它踢掉 2.8.3. 一切就绪,你可以按保存按钮了。 2.8.4. 天马行空,保证提交的数据绝对有效 2.8.5. 限制类型,让用户只能选择我们提供的数据 2.9. 连坐法,关于选择模型 2.10. 2.0有,1.x里没有...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

Global site tag (gtag.js) - Google Analytics