Ext.grid.Panel表格特性Feature

Ext.grid.feature.Feature是一类针对Ext.grid.Panel 的特殊插件,提供了可以被扩展的基本模板方法。子类包括:

1、Ext.grid.feature.RowBody 表格行体

行体特性为表格追加了tr标签,跨越了原始表格的所有列,在表格中展示一些描述性的特殊信息时非常有用,行体在默认状态下是隐藏的,如果需要展示行体必须覆盖getAdditionalData方法,代码如下:

//Ext.grid.feature.RowBody示例
Ext.onReady(function ()
{
    //创建表格数据
    var datas = [
        ["张三", 2500, "张三的个人简历……"],
        ["李四", 1500, "李四的个人简历……"],
        ["王五", 3500, "王五的个人简历……"],
        ["钱六", 4000, "钱六的个人简历……"]
    ];
    //创建grid表格组件
    //创建Grid表格组件
    Ext.create('Ext.grid.Panel', {
        title: 'Ext.grid.feature.RowBody示例',
        renderTo: Ext.getBody(),
        width: 300,
        frame: true,
        store: {
            fields: ['name', 'salary', 'introduce'],
            proxy: {
                type: 'memory',
                data: datas,
                reader: 'array'//Ext.data.reader.Array解析器
            },
            autoLoad: true
        },
        features: [Ext.create('Ext.grid.feature.RowBody', {
            getAdditionalData: function (data, idx, record, orig)
            {
                var headerCt = this.view.headerCt,
                    colspan = headerCt.getColumnCount();//获取表格的列数

                return {
                    rowBody: record.get('introduce'),//指定行体内容
                    rowBodyCls: 'rowbodyColor',//指定行体样式
                    rowBodyColspan: colspan//指定行体跨列的列数
                };
            }
        })],
        columns: [//配置表格列
            Ext.create('Ext.grid.RowNumberer', { text: '行号', width: 35 }),
            { header: "姓名", flex: 1, dataIndex: 'name' },
            { header: "薪资", flex: 1, dataIndex: 'salary' }
        ]
    });
})

效果如下:

2、Ext.grid.feature.Summary表格汇总

表格汇总特性将在表格的底部显示一个汇总行,具体如下:

(1)、汇总值的计算:汇总值需要根据表格的每一列进行计算,计算方式通过column中的summaryType配置项进行制定,内置的汇总

计算类型包括

count:计数;

sum:求和;

min:求最小值;

max:求最大值;

average:求平均值

(2)、汇总值得渲染:通过使用summaryRenderer函数进行渲染,传入summaryRenderer函数的参数包括:

value{Object} 合计值;

data{Object}:包含所有合计值得行数据;

field{String}:进行求和计算的字段名

示例代码如下:

//Ext.grid.feature.Summary示例
Ext.onReady(function ()
{
    创建表格数据
    var datas = [
        ["张三", 2500],
        ["李四", 1500],
        ["王五", 3200],
        ["钱六", 7500]
    ];
    创建grid表格组件
    Ext.create("Ext.grid.Panel", {
        title: "Ext.grid.feature.Summary示例",
        renderTo: Ext.getBody(),
        width: 300,
        frame: true,
        store: {
            fields: ["name", "salary", "introduce"],
            proxy: {
                type: "memory",
                data: datas,
                reader:"array"
            },
            autoLoad:true
        },
        features:[{
            ftype:"summary"
        }],
        columns:[
            配置表格列
            { header:"姓名",flex:1,dataIndex:"name",summaryType:"count",summaryRenderer:function(value){
                return "员工总数:<font color=\"red\">" + value + "</font>";
            }},
            { header:"薪资",flex:1,dataIndex:"salary",summaryType:"average",summaryRenderer:function(value){
                return "平均薪资:<font color=\"red\">" + value + "</font>";
            }},
        ]
    });
});

效果如下:

3、Ext.grid.feature.Grouping表格分组

4、Ext.grid.feature.GroupingSummary分组汇总

时间: 2024-10-12 14:53:11

Ext.grid.Panel表格特性Feature的相关文章

Ext.grid.Panel表格分页存储过程

/*首先需要引入两个Extjs插件类 Ext.ux.data.PagingMemoryProxy和Ext.ux.ProgressBarPager这两个类*/ /*下面是控制弹出窗体放大缩小时窗体居中的方法*/ 1 var HotalOrderResizeCenterWindow; 2 Ext.EventManager.onWindowResize(function() { 3 if (HotalOrderResizeCenterWindow) { 4 HotalOrderResizeCenter

【extjs】 extjs5 Ext.grid.Panel 搜索示例

先看效果图: 页面js: <script type="text/javascript"> /** * 日志类型 store * */ var logTypeStore = Ext.create('Ext.data.Store', { fields: ['type', 'name'], data : [ {"type":"1", "name":"登录日志"}, {"type":

【extjs】 ext5 Ext.grid.Panel 分页,搜索

带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" isELIgnored="false" pageEncoding="UTF-8" %> <html> <head> <jsp:include page="../common/resource_classic.jsp"

完善ext.grid.panel中的查询功能(紧接上一篇)

今天的代码主要是实现,Ext.grid.panel中的查询,其实我也是一名extjs新手,开始想的实现方式是另外再创建一个新的grid类来存放查询出的数据(就是有几个分类查询就创建几个grid类),这样虽然实现了,但是多写了不少代码,之后网上找到了方法. 代码如下:请结合昨天的代码看,否则你是看不明白的 /*我们操作查询的功能键是放在grid的tabbar中的,下面就是创建的grid的tabbar,其中查询操作就在其中,此代码紧接上一篇文章,这个类上一篇文章中也有,但是没有实现查询功能,红色字体

Ext.grid.plugin.RowExpander的简单用法

有时候,我们在grid里渲染数据时,由于某些字段的内容太长,而grid又不会自动出现滚动条,于是溢出的内容后面就会出现省略号, 导致信息展示不完全.如果,这个信息不太重要,展示不完全也无关紧要.可是,有时候,用户需要查看溢出部分的详细内容时,怎么办呢?比如下图中的grid: 因为信息内容太长,导致“消息内容”展示不全,这时候想要查看详细信息怎么办呢? 最简单的解决方法就是利用 Ext.grid.plugin.RowExpander  我们在grid配置项里面添加一个plugins属性.如下图所示

ExtJS4.2 grid panel双击事件

Ext.create('Ext.grid.Panel', {            store: relationStore,              listeners:{              itemdblclick:function(dataview, record, item, index, e){              }},            columns: [                { text: 'id',  dataIndex: 'id' , flex

Ext.grid.GridPanel属性及方法等

1.Ext.grid.GridPanel主要配置项:store:表格的数据集columns:表格列模式的配置数组,可自动创建ColumnModel列模式autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0stripeRows:表格是否隔行换色,默认为falsecm.colModel:表格的列模式,渲染表格时必须设置该配置项sm.selModel:表格的选择模式,默认为Ext.grid.RowSelectionModelenableHdMenu:是否显示表头的上

ext:grid分页,列宽度自动填满grid宽度

var cm = new Ext.grid.ColumnModel([{      header : '编号',      dataIndex : 'id'     }, {      header : '名称',      dataIndex : 'name'     }, {      header : '描述',      dataIndex : 'descn'     }]);   var store = new Ext.data.Store({      proxy : new Ext

Ext的Panel总结(好文章)

我刚才禁不住诱惑去看了一下Ext.Window的API文档,发现只是比Panel多了点什么最大化.最小化.关闭.置前.置后.动画引发目标设置.可调整大小这些功能.像什么标题栏.工具栏之类的东西在Ext.Panel早就封装好了.搞定了Ext.Panel终于可以闷声发大财罗.哈哈哈. 这一文主要总结一下,panel的常见用法. 一.使Panel的标题栏隐藏 这是常有的事,常常,一个栏目并不需要标题.有什么办法呢,创建时config中加上:header:false.就ok了. 二.如何使Panel能被