Он использует сетку ExtJS. Я хотел бы сделать некоторую проверку перед изменением записи в сетке на другую запись.
Ниже мой пример кода:
xtype: 'grid',
bind: {
store:'{xxStore}'
},
columns: [
{
text: 'Name',
dataIndex: 'name',
}
],
listeners:{
beforeselect: 'onBeforeSelect',
select: 'onSelect'
}
В контроллере пример кода выглядит следующим образом:
onBeforeSelect: function(grid) {
// whether can select or not
if (this.getSettingType() === 'global') {
return false;
}
},
onSelect: async function(grid, itemRecord) {
if (!(await checkUserAction())) {
// TODO: how to rollback to old selected record here or onBeforeSelect?
}
},
checkUserAction: function() {
return new Promise((resolve) => {
let me = this;
Ext.Msg.show({
buttons: Ext.Msg.YESNO,
title: 'Confirm Discard Changes',
msg: 'Do you want to discard changes?',
callback: function(button) {
if (button == 'yes') {
resolve(true);
} else {
resolve(false);
}
}
});
});
}
Как это выполнить?
Дополнить поток выбора: