У меня есть сводная сетка, которая отображается, если у пользователей есть разрешения на создание, чтение, обновление, удаление, пользователи группируются таким образом, отделы> учреждения> сектора> пользователи, и я хочу, чтобы пользователь мог редактировать эти поля. .
Я уже пробовал использовать с рендерером:
aggregate: [{
renderer: function(value, record, dataIndex, cell, column) {
var id = Ext.id();
Ext.defer(function() {
Ext.widget('checkbox', {
renderTo: id,
checked: value,
listeners: {
change: {
fn: function(event, target) {
//some function here
}
}
}
});
}, 100);
return Ext.String.format('<div id="{0}"></div>', id);
},
aggregator: 'aggCheckBoxR',
dataIndex: 'Incluir',
header: 'Incluir'
}]
и со столбцом виджета:
aggregate: [{
aggregator: 'aggCheckBoxR',
column: {
xtype: 'widgetcolumn',
widget: {
xtype: 'checkbox',
listeners: {
change: function(cb) {
//some function here
}
}
}
},
dataIndex: 'Incluir',
header: 'Incluir'
}]
Мой агрегатор:
aggCheckBoxR: function(records, measure, matrix, rowGroupKey, colGroupKey) {
if (records.length > 1) {
let checkAllTrue = true;
for (var i = 0; i < records.length; i++) {
if (records[i].get('Incluir') === false || records[i].get('Incluir') === 0) {
checkAllTrue = false;
}
}
return checkAllTrue;
} else {
return records[0].get('Incluir');
}
}
Флажок отображается в сетке, но моя проблема в том, что данные «не сохраняются», когда я разворачиваю или сворачиваю левую ось в сводной сетке, значение флажка возвращается к исходному значению, как я могу сохранить эти данные?
Уже пробовал обновить инструкцию вручную
change: function(cb) {
var nomeCmp = cb.getWidgetRecord().data._compactview_;
Ext.getStore('acesso.ColabStore').findRecord('Nome', nomeCmp).data.Incluir = true;
}
Но, тем не менее, это не работает.
EDIT : пришлось изменить прослушиватель событий объекта столбца на:
{
xtype: 'widgetcolumn',
widget: {
xtype: 'checkbox',
listeners: {
afterrender: function(component, eOpts) {
console.log('after,render');
component.getEl().on('change', function(e, el) {
console.log('change func here');
})
}
}
}
}
При этом событие изменения срабатывает только тогда, когда пользователи устанавливают флажок, и, наконец, я могу использовать
Норбека ответ