`
WChao226
  • 浏览: 27630 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ext实例三(ext4.2 、Ext.grid.Panel)

阅读更多
如果我的博文能帮到你,我感到非常荣幸。能力所限,对于我所写的内容如有不详不对,你们能给一些意见的话我将非常感谢。以后我会将我在工作中学到的一些知识,尽量整理出来给大家分享。 你们的意见是我的动力

效果图:


第一步:创建数据源,本例使用的是远程请求数据,当然你可以使用静态的数据(不过在实际的应用中通常都是通过url请求出JSON数据的)。
url: 'general/appNormal/gList/list_product'是从java后台请求出store数据。
返回的内容格式为var storeJSON=[{id:'1001',p_name:'测试信息一',p_number:'100'},{id:'1002',p_name:'测试信息二',p_number:'101'},{id:'1003',p_name:'测试信息三',p_number:'102'}]
store.load({params:{start : 0,limit : 20}});//带参数的手动加载数据,方法
pageSize : 20   //每页显示20条记录。
var store = Ext.create('Ext.data.Store', {
	  	storeId:'simpsonsStore',
		pageSize : 20,
	    proxy: {
	        type: 'ajax',
	        url: 'general/appNormal/gList/list_product',
	        reader: {
	            type: 'json',
	            root: 'list',
			 	totalProperty : 'totalCount',
			 	idProperty: '0'
	        }
	    },
	    fields : ['id','p_name','p_number'],
		autoLoad: false//自动加载数据开关
	 });
//手动加载数据,start:0,limit:20为分页参数
	 store.load({
	 	params : {
	 		start : 0,
	 		limit : 20
	 	}
	 });


第二步:创建new Ext.grid.Panel,grid中2个地方会用到store,一个用于显示的数据,另一个是用于分页的。
columns:为显示列,如果想隐藏一列,可添加hidden:true,例:{header:'ID',dataIndex:'id',flex:1,hidden:true}。
var grid = new Ext.grid.Panel({
		store : store,
		columns : [{header:'编号',xtype:'rownumberer',align:'left',width:40},{header:'ID',dataIndex:'id',flex:1},{header:'p_name',dataIndex:'p_name',flex:1},{header:'p_number',dataIndex:'p_number',flex:1}],
	    loadMask: true,
	    border:	true,
    	layout : 'fit',
	    minHeight: 400,
		viewConfig : {
			forceFit : true
		},
		stripeRows : true,
		tbar : [{
					text : '新增',
					handler : function(btn) {
						showNewWin();
					}
				},{
					xtype : 'tbseparator'
				},{
					text : '刷新',
					handler : function(btn) {
						// 数据重新载入
						store.reload();
					}
				}],
				bbar:new Ext.PagingToolbar({
					store : store,
					displayInfo : true,
					displayMsg : '当前 {0} - {1}条,共 {2}条',
					emptyMsg : "No topics to display"
				})

	});


第三步: 显示这个页面
	var viewPort = new Ext.Viewport({
				layout : 'fit',//自适应布局方式
				items : [grid]
			});


gridPanel完整代码:
Ext.onReady(function() {
	Ext.QuickTips.init();
	var store = Ext.create('Ext.data.Store', {
	  	storeId:'simpsonsStore',
		pageSize : 20,
	    proxy: {
	        type: 'ajax',
	        url: 'general/product/list',
	        reader: {
	            type: 'json',
	            root: 'list',
			 	totalProperty : 'totalCount',
			 	idProperty: '0'
	        }
	    },
	    fields : ['id','p_name','p_number'],
		autoLoad: false
	 });
	 store.load({
	 	params : {
	 		start : 0,
	 		limit : 20
	 	}
	 });


	// create the Grid
	var grid = new Ext.grid.Panel({
		store : store,
		columns : [{header:'编号',xtype:'rownumberer',align:'left',width:40},{header:'ID',dataIndex:'id',flex:1},{header:'p_name',dataIndex:'p_name',flex:1},{header:'p_number',dataIndex:'p_number',flex:1}],
	    loadMask: true,
	    border:	true,
    	layout : 'fit',
	    minHeight: 400,
		viewConfig : {
			forceFit : true
		},
		stripeRows : true,
		tbar : [{
					text : '新增',
					handler : function(btn){
						//打开新增按钮
					}
				},{
					xtype : 'tbseparator'
				},{
					text : '修改',
					handler : function(btn){
					var data = grid.getSelectionModel().selected;
						if (data.length == 0) {
							Ext.Msg.show({
										title : '提示',
										msg : '请选择对应行数据',
										buttons : Ext.Msg.OK
									});
						} else {
							var rowData = data.items[0].data;
							//showUpdateWin(rowData);//打开修改窗口
						}	
					}
				},{
					xtype : 'tbseparator'
				},{
					text : '刷新',
					handler : function(btn) {
						// 数据重新载入
						store.reload();
					}
				}, {
					xtype : 'tbseparator'
				}, {
					text : '删除',
					handler : function(btn) {
						var data = grid.getSelectionModel().selected;
						if (data.length == 0) {
							Ext.Msg.show({
										title : '提示',
										msg : '请选择对应行数据',
										buttons : Ext.Msg.OK
									});
						} else {
							Ext.Msg.confirm('提示', '确认操作?', function(btn) {
								if ('yes' == btn) {
									Ext.Ajax.request({
										url : "general/product/delete/"+data.items[0].data.id,
										success : function(response, form) {
											var json = Ext.decode(response.responseText);
											if (json.success === true) {
												Ext.Msg.alert('提示','删除成功');
												store.reload();
											} else {
												Ext.Msg.alert('提示',json.flag);
											}
										},
										failure : function(response, fm) {
											Ext.Msg.alert('提示','删除失败');
										}
									});
								}
							});
						}
					}
				}],
				bbar:new Ext.PagingToolbar({
					store : store,
					displayInfo : true,
					displayMsg : '当前 {0} - {1}条,共 {2}条',
					emptyMsg : "No topics to display"
				})

	});
	
	
	var viewPort = new Ext.Viewport({
				layout : 'fit',
				items : [grid]
			});
});
  • 大小: 35.3 KB
0
0
分享到:
评论

相关推荐

    ext实例 左边是 tree 右边是grid 双击grid弹出form修改

    本实例“ext实例 左边是 tree 右边是grid 双击grid弹出form修改”是针对初学者的一个宝贵资源,它演示了如何将这些组件结合起来,实现交互式的数据操作。 1. **树形控件(Tree)**:在左边展示数据结构,通常用于...

    Ext grid 简单实例

    4. **创建Grid Panel**: 创建一个Ext.grid.Panel实例,将Store、Model和Column Model绑定到Grid Panel上。还可以配置其他选项,如分页、排序和过滤。 5. **加载数据**: 在页面加载时,Store会自动发送请求到Web服务...

    ext grid网格控件实例

    通过`Ext.grid.Panel`的`plugins`属性启用分页插件`Ext.grid.plugin.PagingToolbar`,并与`store`的`proxy`配置相结合,可以实现按需从服务器请求数据。`proxy`中的`type`设置为`ajax`或`rest`,并配置`api`属性来...

    Ext Panel拼揍表格模板.rar

    4. **创建Grid Panel**:在Panel内创建一个Grid Panel实例,将Column Model和Store关联起来,设定表格的基本属性,如高度、宽度、可排序性等。 5. **配置Panel**:为Panel添加配置,如标题、布局、工具栏等。如果...

    ext实例 ext操作步骤

    EXT实例通常涉及到一系列操作步骤,包括页面布局、窗口创建以及表格的使用。 **页面布局**是EXT的核心功能之一,它提供了多种布局模式来适应不同设计需求。常见的布局有: 1. **Accordion布局**:这种布局方式使得...

    EXt 可以编辑的grid

    6. **实例化Panel**:最后,我们需要实例化这个Grid Panel,并将其添加到容器(如Viewport或一个Panel)中,使其在页面上显示。 在描述中提到的"自己写的editpanel实例"可能是指开发者自定义了一个编辑面板,这通常...

    ext 实例集

    "EXT实例集"是一个集合,包含了多种EXT的使用示例,对于初学者和有经验的EXT开发者来说都是一个宝贵的资源。 在EXT中,组件是构建用户界面的基础,包括表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)...

    ext grid 导出excel 代码实例

    1. **创建EXT Grid**:首先,你需要创建一个EXT Grid实例,定义列模型、数据源、以及任何其他必要的配置项。例如,你可以使用`Ext.create('Ext.grid.Panel', { ... })`来创建Grid,并设置`columns`,`store`等属性。...

    Ext Js权威指南(.zip.001

    9.3.3 面板标题栏构件:ext.panel.header与ext.panel.tool / 438 9.3.4 记录和恢复面板属性:ext.util.memento / 439 9.3.5 面板常用的配置项、方法和事件 / 439 9.4 布局 / 441 9.4.1 布局概述 / 441 9.4.2 ...

    ExtJs选中var editor = new Ext.ux.grid.RowEditor详解

    #### 三、创建 Grid Panel 最后一步是创建 `GridPanel` 并将其与 `RowEditor` 关联起来。这通常涉及到配置 `GridPanel` 的属性以及绑定数据存储等步骤。 ```javascript // 创建 GridPanel var grid = new Ext.grid...

    java ajax ext实例

    在"Java AJAX ext实例"中,我们主要探讨以下几个关键知识点: 1. **EXT.js框架**:EXT.js 提供了一整套高度可定制的组件,如窗口、面板、表格、表单等,使得开发者可以快速构建复杂的用户界面。它的组件化设计允许...

    前端组件ext-4.2.1-gpl.zip

    它包括但不限于表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)、按钮(Button)、表单(Form)、树形视图(Tree)、图表(Charts)等,这些组件设计精美且易于定制,能够满足各种界面设计需求,为用户...

    Ext表格中增删改查实例

    在"增删改查"实例中,我们将利用`Ext.grid.Panel`的配置项和事件来实现对表格数据的操作。 1. **创建表格(Create)** 创建数据通常涉及到在表格中添加新行。在Ext JS中,我们可以使用`store`对象的`add()`方法来...

    JSP中使用EXT实现grid table

    4. 创建Grid:实例化Grid Panel,设置列配置和Store。 5. 显示Grid:将Grid添加到页面布局中,确保它能被正确渲染。 6. 配置Ajax请求:处理Ajax请求和响应,通常通过EXT的Proxy组件完成。 7. 如果需要,添加...

    jsp+ext4(js部分由Ext Designer生成)

    2.Ext 的model,store,grid使用,store如何接收json数据 3.form.Panel的分离,如何引用。 4.Ext.define的命名包含了namespace。 *本例子是简单的实现了一下jsp+ex4的使用,引用了: Ext.form.Panel Ext.data.Model ...

    ext tree grid 的高级实例运用

    在"ext tree grid 的高级实例运用"中,我们将深入探讨如何有效地结合这两个组件,实现复杂的交互功能。EXT JS允许开发者创建具有拖放功能、节点信息展示、增删修改以及多级选择的树形网格视图,从而提供更加直观和...

    ext grid 显示数据

    在"LearningExtJS 第五章节的翻译"中,我们可以期待找到关于EXT JS Grid的详细讲解和实例应用。 EXT JS的Grid组件提供了丰富的功能,如分页、排序、过滤、编辑等,可以灵活地适应各种业务需求。以下是一些关于EXT ...

    EXT_JS实例,官方实例

    1. **EXT JS组件**:EXT JS提供了一系列组件,如按钮(Button)、面板(Panel)、表格(Grid)、树形视图(Tree)、窗口(Window)等。这些组件具有丰富的可定制性和可扩展性,可以满足不同类型的界面需求。 2. **...

    EXT GridPanel获取某一单元格的值

    - `grid`: 引发事件的GridPanel实例。 - `rowIndex`: 用户点击的行的索引。 - `columnIndex`: 用户点击的列的索引。 - `e`: 事件对象,包含有关点击的更多信息。 3-9. 获取单元格值的步骤: - `editCell_row =...

    EXT实例+JSON

    EXT实例与JSON的结合使用,通常涉及到以下几个关键步骤: 1. **创建数据模型(Model)**:EXT允许定义数据模型来描述数据结构,这有助于保持数据的一致性。例如,你可以创建一个名为`Person`的模型,包含`name`和`...

Global site tag (gtag.js) - Google Analytics