ext tutorial 学习 第 2 章 震撼吧!让你知道ext表格控件的厉害 ( 源码 )

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//ZH-CN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

    <head>

       <meta http-equiv="Content-Type" content="text/html">

       <link rel="stylesheet" type="text/css" href="lib/ext2.2/resources/css/ext-all.css" />

       <script type="text/javascript" src="lib/ext2.2/ext-base.js"></script>

       <script type="text/javascript" src="lib/ext2.2/ext-all.js"></script>

       <script type="text/javascript" src="lib/ext2.2/ext-lang-zh_CN.js"></script>

 

    </head>

    <body>

   

    <script>

    /**

     *

     * @param {Object} value 是当前单元格的值

     * @param {Object} cellmeta 里保存的是cellId单元格idid不知道是干啥的,似乎是列号,css是这个单元格的css样式

     * @param {Object} record 是这行的所有数据,你想要什么,record.data["id"]这样就获得

     * @param {Object} rowIndex 是行号,不是从头往下数的意思,而是计算了分页以后的结果

     * @param {Object} columnIndex 列号太简单了

     * @param {Object} store 这个厉害,实际上这个是你构造表格时候传递的ds,也就是说表格里所有的数据,你都可以随便调用,唉,太厉害了

     */

    function renderDescn(value, cellmeta, record, rowIndex, columnIndex, store) {

        var str = "<input type='button' value='查看详细信息' οnclick='alert(/"" +

            "这个单元格的值是:" + value + "//n" +

            "这个单元格的配置是:{cellId:" + cellmeta.cellId + ",id:" + cellmeta.id + ",css:" + cellmeta.css + "}//n" +

            "这个单元格对应行的record是:" + record + ",一行的数据都在里边//n" +

            "这是第" + rowIndex + "//n" +

            "这是第" + columnIndex + "//n" +

            "这个表格对应的Ext.data.Store在这里:" + store + ",随便用吧。" +

            "/")'>";

        return str;

    }

 

       function renderAge(value){

           if (value>=60){

              return "老人";

           } else if (value<18) {

              return "未成年"

           } else {

              return "成年人"

           }

       }

      

       var sm = new Ext.grid.CheckboxSelectionModel(); // 生成 checkBox 控件

 

       Ext.onReady(function(){

               var cm = new Ext.grid.ColumnModel([

             

                  // 自动加上行号 1.X 中的实现

                  {header:'NO.',renderer:function(value, cellmeta, record, rowIndex){

                      return rowIndex + 1; //不指定dataIndex,而是直接根据renderer返回rowIndex + 1,因为它是从0开始的,所以加个一。

                  }},

                 

                  new Ext.grid.RowNumberer(), // 自动加上行号 2.X 中的实现,是简单了许多

 

                  sm, //生成checkbox

 

                   {header:'编号',dataIndex:'id',sortable:true},

                  {header:'性别',dataIndex:'sex',renderer:function(value){

                     if (value == 'male') {

                         return "<span style='color:red;font-weight:bold;'>红男</span>";

                     } else {

                         return "<span style='color:green;font-weight:bold;'>绿女</span>";

                     }

                  }},

                  {header:'年龄',dataIndex:'age',renderer:renderAge},

                   {header:'名称',dataIndex:'name'},

                   {header:'描述',dataIndex:'descn'}

               ]);

          

               var data = [

                   ['1','male','10','name1','descn1'],

                   ['2','female','18','name2','descn2'],

                   ['3','male','40','name3','descn3'],

                   ['4','female','80','name4','descn4'],

                   ['5','male','60','name5','descn5']

               ];

          

               var ds = new Ext.data.Store({

                   proxy: new Ext.data.MemoryProxy(data),

                   reader: new Ext.data.ArrayReader({}, [

                       {name: 'id'},

                     {name: 'sex'},

                     {name: 'age'},

                       {name: 'name'},

                       {name: 'descn'}

                   ])

               });

               ds.load();

 

              var grid = new Ext.grid.GridPanel({

                  el: 'grid',

                  ds: ds,

                  cm: cm,

                  sm: sm, //生成checkbox

                  height:200,

                  bbar: new Ext.PagingToolbar({

                      pageSize: 10, // 是每页显示几条数据

                      store: ds, 

                      displayInfo: true,  // 跟下面的配置有关,如果是false就不会显示提示信息

                      displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} ', // 只有在displayInfo:true的时候才有效,用来显示有数据的时候的提示信息,中国人应该看得懂汉语,到时候{0},{1},{2}会自动变成对应的数据,咱们只需要想办法把话说通就行了

                      emptyMsg: "没有记录" // 要是没数据就显示这个,jack实在太贴心了,连这些小处都考虑得如此精细

                  })

 

              });

              grid.render();

 

 

       });

    </script>

 

    <div id="grid" ></div>

    </body>

   

</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值