ExtJS4网格分组标题渲染器 - 如何指定?

时间:2011-06-04 03:17:44

标签: grid grouping extjs4

任何人都知道如何将渲染器附加到ExtJS4中的网格分组标题?在ExtJS3中,我有以下工作代码,如果事件已经完成('Y')则返回'Past',如果没有完成则返回'Upcoming':

    function fmt_group_heading(groupVal) {
    if (groupVal === 'Y') {
        return 'Past';
    } else {
        return 'Upcoming';
    }
}

    // create the Grid
    var fitGrid = new Ext.grid.GridPanel({
       store: fitGroupingStore,
       columns: [
        {header: "ID", dataIndex: 'id', hidden: true },
                {header: 'Event', width:320, dataIndex: 'event',            
                            renderer:fmt_event_description},
                {header: 'Events',  dataIndex: 'completed',  hidden: true, 
                            renderer: fmt_group_heading }
    ],
    stripeRows: true,
    // config options for stateful behavior
    stateful: true,
    stateId: 'grid',
hideHeaders: true,
view: new Ext.grid.GroupingView({
    groupRenderer: 'completed',
    forceFit: true
})      
});

ExtJS4提供了网格分组,但我不了解如何更改组文本的输出。 Ext.grid.feature.Grouping的'groupHeaderTpl'属性似乎只将raw字段值从商店读取。

    this.groupingFeature = Ext.create('Ext.grid.feature.Grouping', {
        groupHeaderTpl: 'Group: {completed}'
    });

    // create the Grid
    this.fitnessGrid = new Ext.grid.Panel({
        store: this.fitnessEventStore,
        features: [this.groupingFeature],
            // etc.......

3 个答案:

答案 0 :(得分:1)

像这样试试smth:

  

groupHeaderTpl:   “{[fmt_group_heading(values.name)]}   ({rows.length}   项目{[values.rows.length> 1? “s”:   “”]})'

答案 1 :(得分:1)

groupHeaderTpl要求您在撰写模板时使用{name}。它只会使用groupField提供的值。

See the Docs

答案 2 :(得分:0)

试试这个:

 groupHeaderTpl: '{[values.rows[0].completed]}'