2

グリッドで「groupingsummary」機能を使用しています。summaryrenderer から {name} にアクセスしようとしています。

summaryrender 内の {name} にアクセスする方法はありますか

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

Ext.create('Ext.grid.Panel', {
    width: 200,
    height: 240,
    renderTo: document.body,
    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){

            // Should return : Math Total: / Science Total:like this.

            return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : '');
        }
    }, {
        dataIndex: 'mark',
        text: 'Mark',
        summaryType: 'average'
    }]
});

このような:

ここに画像の説明を入力

ご協力いただきありがとうございます!!!

4

1 に答える 1

1

で試しました

{
    dataIndex: 'student',
    text: 'Name',
    summaryType: 'count',
    summaryType: function(records){
        var myGroupName = records[0].get('subject');
        return '<b>'+myGroupName+' Totals:</b>';
        }
    /*summaryRenderer: function(value){
        return Ext.String.format('{0} student{1}', value, value !== 1 ? 's' : '');
    }*/
},

summaryType が私の問題を解決しました。

于 2013-07-24T09:50:25.860 に答える