Публикация

Как добавить кнопку в реестр детали для активной строки

Вопрос

Как добавить кнопку в реестр детали для активной строки?

Ответ

Можно реализовать следующим образом:

В скрипте детали в блок diff добавить дополнительные свойства для DataGrid (название и заголовок кнопки приведены в качестве примера):

{
        "operation": "merge",
        "name": "DataGrid",
        "values": {
                "activeRowAction": {"bindTo": "onActiveRowAction"},
                "activeRowActions": [
                        {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "myButtonAction",
                                "tag": "myAction",
                                "caption": "MyButton"
                        }
                ]
        }
}

После этого при выделении активной строки в детали должна появиться синяя кнопка с заголовком MyButton.

В массив activeRowActions можно добавить несколько кнопок, они все будут отображаться в выделенной строке так же, как и в реестре раздела.

Далее в методах той же детали необходимо реализовать метод onActiveRowAction. Данный метод в качестве аргументов принимает тэг кнопки и значение ключевой колонки выделенной строки. Если необходимо получить какие-либо другие значения выделенной строки, можно вызвать метод this.getActiveRow(), который возвращает всю модель выделенной строки:

methods: {
        onActiveRowAction: function(buttonTag, primaryColumnValue) {
                if (buttonTag === "myAction") {
                        // весь код ниже можно убрать, он демонстрирует, что значения
                        // primaryColumnValue и activeRowId равны
                        var activeRow = this.getActiveRow();
                        var activeRowId = activeRow.get("Id");
                        console.log(primaryColumnValue);
                        console.log(activeRowId);
                        // дальше Ваша реализация
                        ...
                }
        },
        ...
}

 

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать