EXTJS4自学手册——页面控件(表格的特性)

一、分组展示

说明:通过声明grid控件的features属性,创建Ext.grid.feature.Grouping组件,实现分组展示

例子:

首先,在定义store时,声明需要分组的字段:

复制代码
            var store = Ext.create("Ext.data.ArrayStore", {
                fields: ['id', 'name', 'age', 'address'],
                //通过address字段分组
                groupField: 'address',
                data: [
                    [1, 'aaa', '23', '江津'],
                    [2, 'bbb', '34', '北碚'],
                    [3, 'ccc', '33', '江津'],
                    [4, 'ddd', '54', '杭州'],
                    [4, 'eee', '24', '北碚']
                    ]
            });
复制代码

然后,在创建表格时,声明features属性:

复制代码
 Ext.create('Ext.grid.Panel', {
                title: '学习grid控件',
                store: store,
                forceFit: true,
                renderTo: Ext.getBody(),
                //声明分组展示
                features: [Ext.create('Ext.grid.feature.Grouping', {
                    //组名
                    groupHeaderTpl: '{name}({rows.length})'
                })],
                columns: [{
                    text: '姓名', dataIndex: 'name'
                }, {
                    text: '年龄', dataIndex: 'age'
                }]
            });
复制代码

执行结果:

二、分组展示时为特定字段加上摘要信息

说明:通过groupingsummary组件实现

首先,定义store,声明分组字段:

复制代码
            var store = Ext.create("Ext.data.ArrayStore", {
                fields: ['id', 'name', 'age', 'address'],
                //通过address字段分组
                groupField: 'address',
                data: [
                    [1, 'aaa', '23', '江津'],
                    [2, 'bbb', '34', '北碚'],
                    [3, 'ccc', '33', '江津'],
                    [4, 'ddd', '54', '杭州'],
                    [4, 'eee', '24', '北碚']
                    ]
            });
复制代码

然后,然后在声明grid字段的时候,声明features特性,并在特定字段加上摘要信息

复制代码
Ext.create('Ext.grid.Panel', {
                title: '学习grid控件',
                store: store,
                forceFit: true,
                renderTo: Ext.getBody(),
                //声明分组展示
                features: {
                    groupHeaderTpl: ' {name}',
                    ftype: 'groupingsummary'
                },
                columns: [{
                    text: '姓名', dataIndex: 'name',
                    //统计人数
                    summaryType: 'count',
                    //显示类容
                    summaryRenderer: function(value){
                    return Ext.String.format('{0} people{1}',
                    value, value !== 1 ? 's' : '');
                    }
                }, {
                    text: '年龄', dataIndex: 'age'
                }]
            });
复制代码

执行结果:

三、为表格的特定列增加摘要

说明:通过summary特性实现

首先,定义store:

复制代码
   var store = Ext.create("Ext.data.ArrayStore", {
                fields: ['id', 'name', 'age', 'address'],
                data: [
                    [1, 'aaa', '23', '江津'],
                    [2, 'bbb', '34', '北碚'],
                    [3, 'ccc', '33', '江津'],
                    [4, 'ddd', '54', '杭州'],
                    [4, 'eee', '24', '北碚']
                    ]
            });
复制代码

然后,声明表格的features属性

复制代码
 Ext.create('Ext.grid.Panel', {
                title: '学习grid控件',
                store: store,
                forceFit: true,
                renderTo: Ext.getBody(),
                //声明分组展示
                features: {                    
                    ftype: 'summary'
                },
                columns: [{
                    text: '姓名', dataIndex: 'name',
                    //统计人数
                    summaryType: 'count',
                    //显示类容
                    summaryRenderer: function(value){
                    return Ext.String.format('{0} people{1}',
                    value, value !== 1 ? 's' : '');
                    }
                }, {
                    text: '年龄', dataIndex: 'age'
                }]
            });
复制代码

执行结果:

四、为表格的每一行新增说明

说明:通过rowwrap特性实现

首先,定义store:

复制代码
var store = Ext.create("Ext.data.ArrayStore", {
                fields: ['id', 'name', 'age', 'address'],
                data: [
                    [1, 'aaa', '23', '江津'],
                    [2, 'bbb', '34', '北碚'],
                    [3, 'ccc', '33', '江津'],
                    [4, 'ddd', '54', '杭州'],
                    [4, 'eee', '24', '北碚']
                    ]
            });
复制代码

然后,声明表格的features特性

复制代码
Ext.create('Ext.grid.Panel', {
                title: '学习grid控件',
                store: store,
                forceFit: true,
                renderTo: Ext.getBody(),
                //声明特性
                features: [{
                    ftype: 'rowbody',
                    getAdditionalData: function (data, idx, record, orig) {
                        return {
                            rowBody: Ext.String.format(
                '<div>->姓名:<span> {0}</span></div>',
                data.name)
                        };
                    }
                }
                ],
                columns: [{
                    text: '姓名', dataIndex: 'name'
                }, {
                    text: '年龄', dataIndex: 'age'
                }]
            });
复制代码

执行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值