Добрый день.
Добавляю кнопку для каждого элемента грида в разделе. Код следующий:
'UsrSvcCatSectionStructure', 'UsrSvcCatSectionResources'],
function(Ext, Terrasoft, sandbox, entitySchema, structure, resources) {
structure.userCode = function() {
this.entitySchema = entitySchema;
// ...
// add sync button
this.methods.syncThis = function() {
this.showInformationDialog("Bla-bla-bla!");
};
var baseGridConfig = this.methods.modifyGridConfig;
this.methods.modifyGridConfig = function(gridConfig) {
if (baseGridConfig) {
baseGridConfig.call(this, gridConfig);
}
var syncButtonConfig = {
className: "Terrasoft.Button",
caption: "Bla-bla",
enabled: true,
style: "blue",
visible: true,
tag: 'sync'
};
var gConfig = gridConfig;
gConfig.activeRowActions.push(syncButtonConfig);
return gConfig;
};
var baseOnActiveRowAction = this.methods.onActiveRowAction;
this.methods.onActiveRowAction = function(buttonTag, primaryColumnValue) {
switch (buttonTag) {
case "sync":
this.syncThis();
break;
default:
baseOnActiveRowAction.call(this, buttonTag, primaryColumnValue);
break;
}
};
};
return structure;
});
Код на моей кнопке отрабатывает корректно, однако не работает код на стандартных кнопках "Просмотр", "Копировать" и т.п.
Также пытался выполнить
this.callParent(arguments);
break;
Результат аналогичен - стандартные кнопки не отрабатывают.
Подскажите пожалуйста, в чем моя ошибка?
Нравится
Вероятно вы не вызываете родительский код метода при его переопределении (callParent).
Посмотрите в соседнюю тему http://www.community.terrasoft.ru/forum/topic/11933
Максим, спасибо за ответ. Однако в теме, на которую вы ссылаетесь, добавление кнопки происходит отличным от моего способом.
Я пробовал вызывать callParent - результат аналогичен. Стандартные кнопки не работают.
Проблема решена. Возможно кому-то поможет:
this.methods.onActiveRowAction = function(tag, id, parentOnActiveRowAction) { switch (tag) { case 'sync': this.syncThis(); break; default: parentOnActiveRowAction.call(this, tag, id); break; } }
Вопрос...а такое применимо для кнопок в редактируемом реестре.
Столкнулся что добавив к стандартным кнопкам свои...стандартные кнопки не работают.
onActiveRowAction: function(buttonTag) { var activeRow = this.getActiveRow(); var position; //this.callParent(arguments); switch (buttonTag) { case "Up": position = activeRow.get("Position"); if (position > 0) { position--; this.setPosition(activeRow.get("Id"), position, this.reloadGridData, this); } break; case "Down": position = activeRow.get("Position"); position++; this.setPosition(activeRow.get("Id"), position, this.reloadGridData, this); break; default: break; } },