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'
                }]
            });

执行结果:

posted @ 2012-04-18 23:22  争世不悔  阅读(2181)  评论(0编辑  收藏  举报