`
253405050
  • 浏览: 9222 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

ExtJs 之动态列实现

EXT 
阅读更多

创建DynamicGrid.js

Ext.grid.DynamicGrid = Ext.extend(Ext.grid.GridPanel, {
	initComponent: function() {
		//创建store
		var ds = new Ext.data.Store({
			url: this.storeUrl,
			reader: new Ext.data.JsonReader()
		});
		
		//设置默认配置
		var config = {
			viewConfig: {
				forceFit: true
			},
			enableColLock: false,
			loadMask: true,
			border: true,
			stripeRows: true,
			ds: ds,
			columns: []
		};
		
		//给分页PagingToolbar绑定store
		this.bbar.bindStore(ds, true);
		
		Ext.apply(this, config);
		Ext.apply(this.initialConfig, config);
		Ext.grid.DynamicGrid.superclass.initComponent.apply(this, arguments);
	},
	
	onRender: function(ct, position) {
		this.colModel.defaultSortable = true;
		Ext.grid.DynamicGrid.superclass.onRender.call(this, ct, position);

		this.el.mask('Loading...');
		this.store.on('load', function() {
			if (typeof(this.store.reader.jsonData.columns) === 'object') {
				var columns = [];
				
				if (this.rowNumberer) {
					columns.push(new Ext.grid.RowNumberer());
				}
				
				if (this.checkboxSelModel) {
					columns.push(new Ext.grid.CheckboxSelectionModel());
				}
				
				Ext.each(this.store.reader.jsonData.columns, 
					function(column) {
						columns.push(column);
					}
				);
					
				this.getColumnModel().setConfig(columns);
			}
				
			this.el.unmask();
		}, this);
		
		this.store.load();
	}
});

 

创建grid

var dynamicGrid = new Ext.grid.DynamicGrid({
		title: '测试动态列',
		renderTo: 'dynamic-grid',
		storeUrl: 'goods/dynamicGrid.do',
		width : 600,
		height: 200,
		rowNumberer: true,
		checkboxSelModel: true,
		sm: new Ext.grid.CheckboxSelectionModel(),
		bbar : new Ext.PagingToolbar({
			pageSize : 5,
			displayInfo : true,
			displayMsg : '显示第{0}到{1}条数据,共{2}条',
			emptyMsg : "没有数据",
			beforePageText : "第",
			afterPageText : '页 共{0}页'
		})
	});

 

返回的数据格式

{
	'metaData': {
		'totalProperty': 'total',
		'root': 'records',
		'id': 'id',
		'fields': [
			{'name': 'id', 'type': 'int'},
			{'name': 'name', 'type': 'string'}
		]
	},
	'success': true,
	'total': 50,
	'records': [
		{'id': '1', 'name': 'AAA'},
		{'id': '2', 'name': 'BBB'}
	],
	'columns': [
		{'header': '#', 'dataIndex': 'id'},
		{'header': 'User', 'dataIndex': 'name'}
	]
}
 

 

文章转载至http://erhanabay.com/2009/01/29/dynamic-grid-panel-for-ext-js/,自己另外增加了分页方式。

分享到:
评论
4 楼 253405050 2014-08-15  
p2227 写道
请问,这里extjs有版本限制吗?

这个是ext 3.x版本的,4.x不能用
3 楼 archerfrank 2011-03-25  
挺好的,多总结的好处
2 楼 p2227 2011-03-25  
请问,这里extjs有版本限制吗?
1 楼 naily 2011-03-24  
不错,收藏学习 。

相关推荐

    extjs 实现动态表头

    标题“extjs 实现动态表头”表明我们要讨论的是如何在ExtJS环境中构建一个能够动态改变列头的表格。动态表头的核心在于理解ExtJS的GridPanel组件和ColumnModel类。GridPanel用于显示数据,而ColumnModel则定义了...

    extjs实现动态树

    Accordion布局是ExtJS中的布局类型之一,允许在一个容器内多列垂直堆叠,每次只有一个面板展开。在动态树中,可以将树节点与Accordion布局关联,当点击节点时,对应的Accordion面板展开显示详细信息。 六、优化与...

    ExtJs动态grid的生成

    我们首先从标题"ExtJs动态grid的生成"开始,了解动态生成Grid的基本概念和实现方法。 动态生成Grid意味着在运行时根据需求创建和更新Grid组件,而不是在应用初始化时静态定义。这种灵活性允许开发者更好地响应数据...

    extjs 动态表格完整版

    在这个“ExtJS 动态表格完整版”中,我们可以期待学习到关于如何创建、配置和定制动态表格的深入知识。 首先,动态表格的核心组件是`Ext.grid.Panel`,它是ExtJS中的表格视图。这个组件提供了多种功能,包括排序、...

    ExtJS3.2列布局

    "ExtJS3.2列布局"是这个框架中的一个重要概念,尤其在处理form表单时非常实用。 列布局(Column Layout)是ExtJS的一种布局策略,它允许你在同一行内创建多个并排显示的区域,每个区域可以包含不同的组件,如文本框...

    extjs动态生成表格,前台+后台

    首先,我们需要了解ExtJS中的核心组件之一——GridPanel。GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的信息。在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分...

    Extjs 自定义树结构实现以及动态表头实现

    在本文中,我们将深入探讨如何使用ExtJS框架来实现自定义树结构以及动态表头的功能。ExtJS是一款强大的JavaScript库,常用于构建富客户端应用程序,它提供了丰富的UI组件和强大的数据绑定机制。VS2015是Visual ...

    Extjs动态GRID

    在EXTJS中,动态GRID指的是可以实时调整列宽、列数甚至列结构的网格视图,以适应不同的数据需求和用户界面变化。 1. 动态列创建与删除: EXTJS的Grid Panel支持在运行时动态添加或移除列。这可以通过调用`columns....

    ExtJS文字按钮列

    在ExtJS中,"按钮列"(Button Column)是一种特殊的列类型,常用于表格面板,允许用户在每一行数据的特定列上执行操作。 标题提到的"ExtJS文字按钮列"是指在ExtJS表格中添加一列,该列包含的是文字按钮而非图片按钮...

    ExtJS实现动态读写Checkboxgroup

    总结起来,动态读写ExtJS的CheckboxGroup涉及创建CheckboxGroup、读取选中值、设置选中值以及监听变化。通过结合`ext-basex.js`文件,你可以构建出更复杂的交互式表单和应用程序。记住,始终关注用户需求和体验,...

    extjs 数据导出到Excel,数据列自选

    标题中的“extjs 数据导出到Excel,数据列自选”指的是使用EXTJS框架实现一个功能,让用户能够从Web应用中选择需要的数据列,并将这些选定的数据导出为Excel文件。EXTJS是一个强大的JavaScript库,专门用于构建富...

    Extjs4.0 列隐藏和滚动条动态加载

    在ExtJS 4.0版本中,它提供了一系列功能,包括表格面板(Grid Panel)的列管理以及滚动条的动态加载。让我们深入探讨这些核心概念。 1. **列隐藏与显示** 在ExtJS 4.0中,表格面板允许用户动态隐藏或显示列,以...

    Ext grid 动态添加字段、列扩展

    Ext grid 动态添加字段、列扩展, 如何动态添加或者删除一个grid的列

    extjs2.0 下拉列

    在本例中,我们将重点讨论如何在 ExtJS 2.0 中实现下拉列表功能。 下拉列表在 Web 应用程序中非常常见,通常用于提供可选的选项供用户选择。在 ExtJS 中,下拉列表可以通过创建 `Ext.form.ComboBox` 实现。这个组件...

    EXTJS动态树的实现举例示例代码

    在"langsinext"这个压缩包中,可能包含了一个完整的EXTJS动态树实现示例代码,你可以解压后查看具体实现细节,学习如何将上述概念应用到实践中。记得根据你的实际需求调整数据源、模型字段以及TreePanel的配置。

    ExtJS Grid功能实现

    ExtJS 表格的功能实现,包括单元格编辑,数据的获取。

    基于ExtJS技术实现的DataGrid 动态数据绑定检索例子程序代码

    本示例程序代码是基于ExtJS技术实现的DataGrid动态数据绑定检索功能,它允许用户实时地从服务器检索和展示数据。 在DataGrid组件中,动态数据绑定是指将表格的数据源与服务器上的数据实时连接,当数据发生变化时,...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    通过这个实例,开发者可以掌握ExtJS和Struts2的结合使用,实现动态数据驱动的表格,这对于开发数据密集型的Web应用非常有帮助。同时,封装Grid组件也是提升开发效率的一个重要实践。记得在实际应用中,根据需求进行...

    EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化

    EXTJS的GridPanel是其组件库中的核心组件之一,用于展示数据网格,广泛应用于Web应用的数据展示。在EXTJS中,ColumnModel是用来定义GridPanel列结构和行为的关键部分。这篇博客"EXTJS_GridPanel_ColumnModel_列的...

    Extjs分页使用java实现数据库数据查询.docx

    在本文中,我们将探讨如何使用ExtJS框架结合Java实现数据库数据的分页查询。ExtJS是一个强大的JavaScript库,常用于构建桌面级的Web应用程序,而Java则是一种广泛使用的后端开发语言,常用于处理服务器端逻辑。在这...

Global site tag (gtag.js) - Google Analytics