`

ExtJs教程--列表Grid使用说明

阅读更多

公司这次用EXTJS 做后台,原因很简单布局非常漂亮大气。然后找到了他的API文档http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store 大概知道个所以然。当看到Grid这个例子的时候 ,这些步骤看的不是太明白为什么,然后找了这个通俗易懂的资料。

 

Grid的使用包括以下几个步骤:

1、获取数据集,示例代码如下

js 代码

  1. var myData = [
  2. ['Apple',29.89,0.24,0.81,'9/1 12:00am'],
  3. ['Ext',83.81,0.28,0.34,'9/12 12:00am'],
  4. ['Google',71.72,0.02,0.03,'10/1 12:00am'],
  5. ['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],
  6. ['Yahoo!',29.01,0.42,1.47,'5/22 12:00am']
  7. ];

该数据集是由数组构成,包括5条记录,每条记录包括五个字段:一个字符串型、三个浮点型和一个日期型。

 

2、将数据集进行装载,这个过程需要设置两件事,一件是指定要装载的数据和代理形式,一件是指定读取时规则,示例代码如下

js 代码

  1. var ds = new Ext.data.Store({
  2. proxy: new Ext.data.MemoryProxy(myData),
  3. reader: new Ext.data.ArrayReader({id: 1}, [
  4. {name: 'company'},
  5. {name: 'price', type: 'float'},
  6. {name: 'change', type: 'float'},
  7. {name: 'pctChange', type: 'float'},
  8. {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
  9. ])
  10. });
  11. ds.load();

第一件事(指定要装载的数据和代理形式),是通过proxy: new Ext.data.MemoryProxy(myData)完成得,它指定了装载数据为myData,代理形式为内存代理。代理形式除了内存方式之外还有HttpProxy和ScriptTagProxy等形式。

 

第二件事(指定读取时规则),是通过reader: new Ext.data.ArrayReader({id: 1}, [……]) 完成的,这里它指定为数组读取,并指定数据项的名称和类型。

 

3、设置页面显示列表参数,示例代码如下:

js 代码

  1. var colModel = new Ext.grid.ColumnModel([
  2. {header: "Company", width: 120, sortable: true, dataIndex: 'company'},
  3. {header: "Price", width: 90, sortable: true, dataIndex: 'price'},
  4. {header: "Change", width: 90, sortable: true, dataIndex: 'change'},
  5. {header: "% Change", width: 90, sortable: true, dataIndex: 'pctChange'},
  6. {header: "Last Updated", width: 120, sortable: true,
  7. renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
  8. ]);

在这里它指定了每一列的显示表头名、宽度、是否可以排序,以及数据引用的名称。

在数据显示时可以通过renderer进行格式化设置,使数据显示更友好。

 

4、构建列表并显示,示例代码如下

js 代码

  1. var grid = new Ext.grid.Grid('grid-example', {ds: ds, cm: colModel});
  2. grid.render();
  3. grid.getSelectionModel().selectFirstRow();

这里通过构建Grid对象进行了列表设置,包括数据源ds和字段模型colModel,这两项就是前面部分准备的。

grid.render();——指得是将构造的Grid呈现到页面

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics