ExtJS groupclick选择标题点击时的所有子元素

时间:2018-06-07 11:13:27

标签: extjs extjs4.2

我正在尝试扩展一个使用ExtJS的开源自动化测试框架。

我是ExtJS的新手,并试图四处寻找其观点。

现在我希望以这样的方式使用网格分组:当我点击组标题上的图标时,它应该将其子项的所有数据附加到数组中,并将该事件与数据一起在控制器中触发。

我尝试将groupclick添加到我的听众,但它似乎无法正常工作。

我的网页快照如下所示:[1]:https://i.stack.imgur.com/7LeMn.png

以下是我的观点代码:

Ext.define('Redwood.view.Reportsgrid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.reportsgrid',
    store: 'Reports',
    selType: 'rowmodel',
    title: "[All Executions]",
    features: [{
        ftype:'grouping',
        groupHeaderTpl: "Test Case Name: {name}",
        // enableGroupingMenu:true
    }],
    listeners:{
        groupclick: function (view, node, group, e, eOpts) {
            view.features[0].collapseAll();
            view.features[0].expand(group);
        }
    },
    viewConfig: {
        markDirty: false
    },
    minHeight: 150,
    height: 500,
    plugins: [
        "bufferedrenderer"],
    manageHeight: true,
    initComponent: function () {
        var reportsView = this;
        var me = this;
        this.tbar ={
            xtype: 'toolbar',
            dock: 'top',
            items: [
            ]
        };
        this.columns = [
           /* {
                xtype: 'actioncolumn',
                header: 'Action',
                width: 75,
                weight: 1,
                align: 'center',
                items: [
                    {
                        icon: 'images/symbol_sum.png',
                        tooltip: 'Aggregated Report',
                        itemId: "aggregationReport",
                        handler: function(grid, rowIndex, colIndex) {
                            var report = this.up("reportsView");
                            report.fireEvent('aggregate')
                        }
                    }
                ]
            }, */
            {
                header: 'Executions',
                dataIndex: 'name',
                flex: 1,
                width: 200,
                weight: 2,
                summaryType: 'count',
                summaryRenderer: function(value,metaData,record){
                    return "<p style='font-weight:bold;color:#000000'>"+value+"</p>";
                }
            },
        ];
        this.callParent(arguments);
    }
});

2 个答案:

答案 0 :(得分:0)

groupclick事件在功能上可用,而不是网格,因此您必须将侦听器添加到功能,而不是网格:

features: [{
    ftype:'grouping',
    groupHeaderTpl: "Test Case Name: {name}",
    // enableGroupingMenu:true
    listeners:{
        groupclick: function (view, node, group, e, eOpts) {
            view.features[0].collapseAll();
            view.features[0].expand(group);
        }
    }
}],

答案 1 :(得分:0)

您能否澄清是否触发了groupClick或者groupClick内的代码是否无效?如果触发gridClick,请尝试此操作。

 grid.doLayout();