-1

在此处输入图像描述我是 Extjs 6 的新手,我正在实现一个具有分组摘要功能的网格,我尝试了这两个示例: http ://examples.sencha.com/extjs/6.5.0/examples/classic/grid/ group-summary-grid.html 但不起作用,我在浏览器控制台中遇到了这个问题。有人知道这个错误吗? 在此处输入图像描述

    Ext.define('TestResult', {
        extend: 'Ext.data.Model',
        fields: ['student', 'subject', {
            name: 'mark',
            type: 'int'
        }]
    });

    var grid = Ext.create('Ext.grid.Panel', {
        width: 200,
        height: 240,
        features: [{
            groupHeaderTpl: 'Subject: {name}',
            ftype: 'groupingsummary'
        }],
        store: {
            model: 'TestResult',
            groupField: 'subject',
            data: [{
                student: 'Student 1',
                subject: 'Math',
                mark: 84
            }, {
                student: 'Student 1',
                subject: 'Science',
                mark: 72
            }, {
                student: 'Student 2',
                subject: 'Math',
                mark: 96
            }, {
                student: 'Student 2',
                subject: 'Science',
                mark: 68
            }]
        },
        columns: [{
            dataIndex: 'student',
            text: 'Name',
            summaryType: 'count',
            summaryRenderer: function (value) {
                return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : '');
            }
        }, {
            dataIndex: 'mark',
            text: 'Mark',
            summaryType: 'average'
        }]
    });
    var win = Ext.create('Ext.window.Window', {
        width: 300,
        height: 200,
        items: [grid]
    });
    win.show();

4

1 回答 1

0

Ext.view.Table.constructFeatures 调用 Ext.create 进而调用以下内容。

feature = Ext.create('feature.' + feature.ftype, feature);

看起来功能配置没有任何拼写错误,因此 Ext.create 最终将调用类管理器,传递该功能的已解析类。

cls = Manager.get(name);
...
return Manager.getInstantiator(args.length)(cls, args);

从例外中,“c”是“cls”——要素类。因此,我认为类管理器没有找到要素类。确保已将 Ext.grid.feature.GroupingSummary 添加到requires声明中,以便类已加载且可用。

于 2018-02-20T18:33:44.803 回答