кнопки
редактируемый реестр
7.x

Кнопки на редактируемом реестре

Сделал редактируемый реест с позицией.
Добавил кнопки вверх и вниз

init: function() {
                                this.callParent(arguments);
                        },
...

onActiveRowAction: function(buttonTag) {
                                var activeRow = this.getActiveRow();
                                var position;
                                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;
                                }
                        },

соответственно кнопки удаления теперь не работают.
Как мне сделать чтобы работали?

Нравится

10 комментариев

в методе onActiveRowAction скорее всего забыли:
[javascript]
this.callParent(arguments);
[/javascript]
т.е. Ваша логика затерла "родительскую", а подразумевалось ее дополнение.

Игорь то что у меня вначале стоит.
[csharp]
init: function() {
this.callParent(arguments);
},
[/csharp]

не работает?

это для метода init
я же вам говорю про метод onActiveRowAction
у каждого метода своя само собой цепочка.

вставьте
[javascript]
this.callParent(arguments);
[/javascript]
в начале или в конце вашего описания метода onActiveRowAction

Может я не правильно описал сами кнопки
[csharp]
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "DataGrid",
"values": {
"className": "Terrasoft.ConfigurationGrid",
"generator": "ConfigurationGridGenerator.generatePartial",
"generateControlsConfig": {"bindTo": "generatActiveRowControlsConfig"},
"changeRow": {"bindTo": "changeRow"},
"unSelectRow": {"bindTo": "unSelectRow"},
"onGridClick": {"bindTo": "onGridClick"},
"activeRowActions": [
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "save",
"markerValue": "save",
"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
},
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "cancel",
"markerValue": "cancel",
"imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
},
{
"className": "Terrasoft.Button",
"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"tag": "remove",
"markerValue": "remove",
"imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
}
],
"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
"activeRowAction": {"bindTo": "onActiveRowAction"},
"multiSelect": false
}
},
{
"operation": "insert",
"name": "DataGridActiveRowUpButton",
"parentName": "DataGrid",
"propertyName": "activeRowActions",
"values": {
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"imageConfig": LocalizableHelper.localizableImages.Up,
"tag": "Up"
}
},
{
"operation": "insert",
"name": "DataGridActiveRowDownButton",
"parentName": "DataGrid",
"propertyName": "activeRowActions",
"values": {
"className": "Terrasoft.Button",
"style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
"imageConfig": LocalizableHelper.localizableImages.Down,
"tag": "Down"
}
}
]/**SCHEMA_DIFF*/,
methods: {
init: function() {
this.callParent(arguments);
},
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]

а зачем закомментировали
[javascript]
//this.callParent(arguments);
[/javascript]
не помогло ?

Не помогло.
Вообще все кнопки перестали работать.
Делаю так.
Из базового BaseSectionV2 из метода onActiveRowAction
Копирую и вставляю код
[csharp]
case "delete":
this.deleteRecords();
break;
[/csharp]

Только пока не нашел где для cancel и save

в вашем switch case поместите
[javascript]
this.callParent(arguments)
[/javascript]
в условие default:

Увы не помогло.

Но ведь метод onActiveRowAction в детали с ред. реестром вызывается из схемы ConfigurationGridUtyilities. Вам не нужно вызывать радителя. Достаточно скопировать весь код замещаемого метода и добавить свою логику в switch.

"Мотков Илья" написал:с ред. реестром вызывается из схемы ConfigurationGridUtyilities.

мне кажется правильнее будет её (ConfigurationGridUtyilities) и замещать. Предусмотрев логику, таким образом, чтобы отличать свой кейс использования от прочих вызовов этого метода в системе.

Показать все комментарии