Я пытаюсь расширить платформу тестирования автоматизации с открытым исходным кодом, которая использует 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);
}
});





Событие 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);
}
}
}],
Можете ли вы уточнить, срабатывает ли groupClick или код внутри groupClick не работает? если срабатывает gridClick, попробуйте это.
grid.doLayout();
Я пытался, как вы сказали, похоже, не работает. Я что-нибудь упускаю?