ExtJS4学习笔记(七)---Grid的使用

50 篇文章 0 订阅
22 篇文章 1 订阅

Extjs4 Grid创建还是比较容易的,难记、难理解的地方,也就是数据的获取。下面,就创建一个最简单的Grid组件,后面,我们会逐渐丰富这个Grid的功能。

HTML代码:

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Grid-MHZG.NET</title>
  6. <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
  7.     <script type="text/javascript" src="../../bootstrap.js"></script>
  8.     <script type="text/javascript" src="../../locale/ext-lang-zh_CN.js"></script>
  9.     <script type="text/javascript" src="grid.js"></script>
  10. </head>

  11. <body>
  12. <div id="demo"></div>
  13. </body>
  14. </html>

grid.js:

 
  1. Ext.require([
  2.     'Ext.grid.*',
  3.     'Ext.data.*'
  4. ]);
  5. Ext.onReady(function(){
  6.     Ext.define('MyData',{
  7.         extend: 'Ext.data.Model',
  8.         fields: [
  9.             //第一个字段需要指定mapping,其他字段,可以省略掉。
  10.             {name:'UserName',mapping:'UserName'},
  11.              'Sex',
  12.              'Age',
  13.              'XueHao',
  14.              'BanJi'
  15.         ]
  16.     });
  17.     
  18.     //创建数据源
  19.     var store = Ext.create('Ext.data.Store', {
  20.         model: 'MyData',
  21.         proxy: {
  22.            //异步获取数据,这里的URL可以改为任何动态页面,只要返回JSON数据即可
  23.             type: 'ajax',
  24.             url: 'mydata.json',
  25.             
  26.             reader: {
  27.                 type: 'json',
  28.                 root: 'items',
  29.                 //totalProperty  : 'total'
  30.             }
  31.         },
  32.         autoLoad: true
  33.     });
  34.     
  35.     //创建Grid
  36.     var grid = Ext.create('Ext.grid.Panel',{
  37.         store: store,
  38.         columns: [
  39.             {text: "姓名", width: 120, dataIndex: 'UserName', sortable: true},
  40.             {text: "性别", flex: 1, dataIndex: 'Sex', sortable: false},
  41.             {text: "年龄", width: 100, dataIndex: 'Age', sortable: true},
  42.             {text: "学号", width: 100, dataIndex: 'XueHao', sortable: true},
  43.             {text: "班级", width: 100, dataIndex: 'BanJi', sortable: true}
  44.         ],
  45.         height:400,
  46.         width:480,
  47.         x:20,
  48.         y:40,
  49.         title: 'ExtJS4 Grid示例',
  50.         renderTo: 'demo',
  51.         viewConfig: {
  52.             stripeRows: true
  53.         }
  54.     })
  55. })

mydata.json:当然,你也可以使用任意服务端程序返回json数据(asp?.net?java还是php,看你的爱好了)

 
  1.     "items": [ 
  2.         { 
  3.             "UserName""李彦宏"
  4.             "Sex""男"
  5.             "Age":25,
  6.             "XueHao":00001,
  7.             "BanJi":"一班"
  8.         }, 
  9.         { 
  10.             "UserName""马云"
  11.             "Sex""男"
  12.             "Age":31,
  13.             "XueHao":00002,
  14.             "BanJi":"二班"
  15.         },
  16.         { 
  17.             "UserName""张朝阳"
  18.             "Sex""男"
  19.             "Age":30,
  20.             "XueHao":00003,
  21.             "BanJi":"一班"
  22.         },
  23.         { 
  24.             "UserName""朱俊"
  25.             "Sex""男"
  26.             "Age":28,
  27.             "XueHao":00004,
  28.             "BanJi":"一班"
  29.         },
  30.         { 
  31.             "UserName""丁磊"
  32.             "Sex""男"
  33.             "Age":29,
  34.             "XueHao":00005,
  35.             "BanJi":"二班"
  36.         },
  37.         { 
  38.             "UserName""李国军"
  39.             "Sex""男"
  40.             "Age":30,
  41.             "XueHao":00006,
  42.             "BanJi":"二班"
  43.         },
  44.         { 
  45.             "UserName""王志宝"
  46.             "Sex""男"
  47.             "Age":25,
  48.             "XueHao":00007,
  49.             "BanJi":"一班"
  50.         }
  51.     ] 

Extjs4 Grid组件的数据需要几点注意。

第一,就是数据类型,我们可以指定数据类型,比如:

 
  1. var store = Ext.create('Ext.data.ArrayStore', {
  2.         fields: [
  3.            {name: 'company'},
  4.            {name: 'price',      type: 'float'},
  5.            {name: 'change',     type: 'float'},
  6.            {name: 'pctChange',  type: 'float'},
  7.            {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
  8.         ],
  9.         data: myData
  10.     });

数据类型分为以下几种:

1、auto(默认)
2、string
3、int
4、float
5、boolean
6、date

第二:Ext.data.Model,示例中,只指定了一个mapping,那么第一个mapping是必须要指定的,从第二个开始,我们就不需要再去指定mapping了,Extjs很聪明,他会根据数据来判断需要的mapping。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值