Добрый день.
Добавляю кнопку для каждого элемента грида в разделе. Код следующий:
'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 - результат аналогичен. Стандартные кнопки не работают.
Проблема решена. Возможно кому-то поможет:
[javascript]
this.methods.onActiveRowAction = function(tag, id, parentOnActiveRowAction) {
switch (tag) {
case 'sync':
this.syncThis();
break;
default:
parentOnActiveRowAction.call(this, tag, id);
break;
}
}
[/javascript]
Вопрос...а такое применимо для кнопок в редактируемом реестре.
Столкнулся что добавив к стандартным кнопкам свои...стандартные кнопки не работают.
[csharp]
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;
}
},
[/csharp]