ExtJS groupclick выбрать все дочерние элементы при щелчке по заголовку - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь расширить среду тестирования автоматизации с открытым исходным кодом, которая использует ExtJS.

Я новичок в ExtJS и попытался поиграться с его представлениями.

Теперь я хочуиспользуйте группировку сетки таким образом, чтобы при нажатии на значок в заголовке группы он добавлял все данные своих дочерних элементов в массив и запускал это событие в контроллере вместе с данными.

Iпопытался добавить групповой щелчок для моих слушателей, но он, похоже, не работает.

Снимок моей страницы выглядит следующим образом: [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 голосов
/ 12 июня 2018

Можете ли вы уточнить, запущен ли groupClick или код внутри groupClick не работает?если запущен gridClick, попробуйте это.

 grid.doLayout();
0 голосов
/ 07 июня 2018

Событие 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);
        }
    }
}],
...