Extjs 动态Gird【列名动态创建】

有时我们需要做一个gird,但gird的列名确是变化的,我们需要从数据库中先查出列名,也就是说我们要实现一个动态的gird.

下面的代码是我实现动态gird的方法,简单但强大,数据是读的json文件,实际使用的时候可以把在后台把数据存在map中再转成json格式的字符串即可,json格式要符合我给出的格式。
首先是json数据:

{
  "data": [
    {
      "number": "1",
      "field1": "a",
      "field2": "b",
      "field3": "c"
    },
    {
      "number": "2",
      "field1": "d",
      "field2": "e",
      "field3": "f"
    },
    {
      "number": "3",
      "field1": "g",
      "field2": "h",
      "field3": "i"
    }
  ],
  "columnModle": [
    {
      "text": "序号",
      "dataIndex": "number",
      "width": 40,
      "locked":true
    },
    {
      "text": "字段1",
      "dataIndex": "field1"
    },
    {
      "text": "字段2",
      "dataIndex": "field2"
    },
    {
      "text": "字段3",
      "dataIndex": "field3"
    }
  ],
  "fieldsNames": [
    {
      "name": "number"
    },
    {
      "name": "field1"
    },
    {
      "name": "field2"
    },
    {
      "name": "field3"
    }
  ]
}

然后是js文件:

Ext.onReady(function() {

	Ext.Ajax.request({
		url : "page/data/test1.json",
		params : {
		},
		success : function(response, config) {
			json = Ext.util.JSON.decode(response.responseText);

			var store = new Ext.data.JsonStore({
				data : json.data,
				fields : json.fieldsNames
			});

			var column_  = json.columnModle;
			var grid = new Ext.grid.Panel({
				title : ‘动态表格‘,
				region : ‘center‘,
				xtype: ‘locking-grid‘,   //类型为锁定表格
				split : true,
				renderTo : Ext.getBody(),
				height : 300,
				width : 1200,
				columns: column_,
				store:store
			});
		},
		failure : function() {

		}
	});
});

奉上截图:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 03:53:11

Extjs 动态Gird【列名动态创建】的相关文章

使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据

应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-299号存储的是我们的关键字.那我们要建这样一个数据库,手动输入这样的一个表是不现实的,我们只有通过程序来帮我实现这个重复枯燥的操作. 具体的示意图如下所示: 首先图1是我们的原始表格: 图1 这个时候我们需要程序来帮我们完成自动字段的创建和数据的插入. 图2 上图是我们整个表的概况.下面我们就用程序来

【转】VS2013动态库文件的创建及其使用详解

一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2.”确定“——”下一步“,选择”DLL“选项,再点”完成“: 3.菜单栏选择”项目“——>”添加新项“,来创建头文件MakeDll.h. 在MakeDll.h中输入以下例子代码: 1 #ifdef DLL_API//如果已经定义就什么都不做 2 //nothing to do 3 #else //否则定义DLL_API 4 #define DLL_API __declspec(dll

Struts动态表单的创建

一.在struts中如何实现动态表单的创建 (1)第一步:创建一个简单的注册页面: <body> <form action="/DynamicForm/register.do?flag=register" method="post"> u:<input type="text" name="name"/><br/> p:<input type="password&q

“高三”笔记之动态JS、动态样式

拜读<JavaScript高级程序设计> --- 站在巨人的肩上 动态JS.动态样式就是页面加载时不存在,但将来通过DOM操作动态添加的脚本:包括加载外部文件和添加内部代码块两种:动态加载的外部文件能够立即运行,而动态添加的代码块却不能如愿的立即执行:下面将主要以JS为例,小小的探索下动态脚本的加载.执行以及jQuery的做法.Angularjs的相关做法: 1.动态加载外部文件 因为动态加载的外部JS会立即执行,也没什么浏览器兼容性问题,这个好处理:这里的重点是怎么知道脚本已加载完成呢?呵呵

vc++基础班[28]---动态数组及动态链表的讲解

C++中也有相应的动态数组.动态链表.映射表的模板类,就是STL中的:vector.list.map 他们属于C++标准中的一部分,对于程序的移植性来说也是不错的,但是在MFC编程中使用 CArray.CList.CMap 会更方便一些! CArray.CList.CMap 的由来?…… ①.数组的基本说明: 数组是固定大小的,相同数据类型的元素的顺序集合,每个元素在数组中有一个固定的位置. 将10个数放入数组中,假设数组的名称为number,可以称数组中第一个元素为 number[0],第二个

Java代理之(jdk静态代理/jdk动态代理/cglib动态代理/aop/aspectj)

一.概念 代理是什么呢?举个例子,一个公司是卖摄像头的,但公司不直接跟用户打交道,而是通过代理商跟用户打交道.如果:公司接口中有一个卖产品的方法,那么公司需要实现这个方法,而代理商也必须实现这个方法.如果公司卖多少钱,代理商也卖多少钱,那么代理商就赚不了钱.所以代理商在调用公司的卖方法后,加上自己的利润然后再把产品卖给客户.而客户部直接跟公司打交道,或者客户根本不知道公司的存在,然而客户最终却买到了产品. 专业点说:代理模式是对象的结构型模式,代码模式给某一个对象提供代理,并由代理对象控制原对象

OC 动态类型,动态绑定,动态加载

Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有 动态类型(Dynamic typing) 动态绑定(Dynamic binding) 动态加载(Dynamic loading) 动态类型:程序直到执行时才能确定所属的类. id 数据类型id 通用的对象类型,可以存储任意类型的对象,id后面没有号,它本身就是个指针类似于void ,但只可以指向对象类型 静态类型与动态类型 编译期检查与运行时检查 静态类型在编译期就能检查出错误 静态类型声明代码可读性好 动态类型只有在

再探Linux动态链接 -- 关于动态库的基础知识

  在近一段时间里,由于多次参与相关专业软件Linux运行环境建设,深感有必要将这些知识理一理,供往后参考. 编译时和运行时 纵观程序编译整个过程,细分可分为编译(Compiling,指的是语言到平台相关目标文件这一层次)和链接(Linking,指目标文件到最终形成可执行文件这一层次),这个总的过程可称为编译时:就动态链接而言,还存在一个运行时,即程序在被操作系统加载的过程中,系统将该程序需要的动态库加载至内存到程序开始运行的这一段过程.明确这两个过程在一般linux开发中的地位,以及了解每个"

关于Struts2的动态URL和动态参数

两种方式的DynaAction都一样,如下: 1 package com.xsl.action; 2 3 import java.util.Random; 4 5 import com.opensymphony.xwork2.ActionSupport; 6 7 public class DynaAction extends ActionSupport { 8 private String url; 9 private String name; 10 private int age; 11 pu