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

来源:互联网 发布:量化程序员 编辑:程序博客网 时间:2024/06/06 08:31

一、分组展示

说明:通过声明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'                }]            });
复制代码

执行结果:

原创粉丝点击