当前位置: 代码迷 >> JavaScript >> ExtJs grid(1)简介
  详细解决方案

ExtJs grid(1)简介

热度:414   发布时间:2012-09-04 14:19:30.0
ExtJs grid(一)简介

转自:http://yahaitt.iteye.com/blog/234379

grid是由store、cm,sm(选择模型)、gridView组成。


grid,即列表,他的核心功能就是用来展现数据列表,包括列表各列的头信息和实际数据。 

grid的各列头信息是由ColumnModel来定义的。

grid中的sm(selModel)包括CheckboxSelectionModel,RowSelectionModel,CellSelectionModel三种选择模式

grid的实际数据列表是通过Store来展现的。 

grid的显示是靠gridView来显示的.


grid的实例化如下: 
Js代码  收藏代码
  1. var grid = new Ext.grid.GridPanel({  
  2.   cm:cm,  
  3.   sm:sm,
  4.   store:store  
  5.   ...  
  6. });  


相关图片示例如下: 
 

ColumnModel中有两个非常重要的配置选项:header和dataIndex, 
header就是列头的文本信息,是个字符串。 
dataIndex是store中对应的数据结构定义,即对应于fields中各项的name值。 

ColumnModel的构造函数接收的是数组类型的参数。用于一次性创建多个列信息。 
如下: 
Js代码  收藏代码
  1. var cm = new Ext.grid.ColumnModel([  
  2.   ...  
  3. ]);  

SelModel用于选择的模式:

Js代码  收藏代码
  1. var sm = new Ext.grid.RowSelectionModel({  
  2.   ...  
  3. });  

下面我们再看一下Store,即数据存储器。 
Store由数据结构定义和数据组成。 
数据结构定义的最简单的模式如下: 
Js代码  收藏代码
  1. var fields = ["id","name","email","sex","age"];  

只标识了各名称。就像创建数据库表结构一样,可以只创建表中各字段的名称。 

因此最简单的数据存储器如下: 
Js代码  收藏代码
  1. var data = [...];  
  2. var store = new Ext.data.Store({  
  3.   data:data,//此处为与数据结构定义相对应的数据  
  4.   fields:fields  
  5.   ...  
  6. });  


因为ColumnModel的dataIndex配置选项是对应于store中的数据结构定义fields, 
因此可以如下实例化ColumnModel: 
Js代码  收藏代码
  1. var cm = new Ext.grid.ColumnModel([{  
  2.     header:"id",  
  3.     dataIndex:"id"//对应于grid的store的fields中的id  
  4.   },{  
  5.     header:"姓名",  
  6.     dataIndex:"name"//对应于grid的store的fields中的name  
  7.   },{  
  8.     header:"email",  
  9.     dataIndex:"email"//对应于grid的store的fields中的email  
  10.   },{  
  11.     header:"性别",  
  12.     dataIndex:"sex"//对应于grid的store的fields中的sex  
  13.   },{  
  14.     header:"年龄",  
  15.     dataIndex:"age"//对应于grid的store的fields中的age  
  16.   }  
  17. ]);  
  相关解决方案