Как добавить кнопку в деталь с списком? (все ещё активый вопрос)
Доброго времени суток. Имею пробелму. Нужно в преднастроенной странице в деталь карты поставить кнопку для активной записи детали. Кнопку "Заблокировать карту".
Попробовал из статьи тут, тут, и тут , но никак не появляется кнопка. Подскажите как мне реализовать данную задачу? Я отыскал все ответы в комьюнити. Но у меня не появляется кнопка. Прощу помощи. Спасибо.
Нравится
Ислам, добрый день!
Реализация в этом примере рабочая.
Обратите внимание, что код нужно добавлять в "Схема детали: "Название вашей детали"" (так она будет отображатся в конфигурации).
Привожу пример своей реализации:
define("Schemae4042f8dDetail", [], function() { return { entitySchemaName: "NewTestDetail", details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/, diff: /**SCHEMA_DIFF*/[ { "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" } ] } } ]/**SCHEMA_DIFF*/, 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); // дальше Ваша реализация } }, } }; });
У меня таким образом
В DIFF
"operation": "merge", "name": "DataGrid", "values": { "activeRowAction": {"bindTo": "onActiveRowAction"}, // "onButtoClick": {"bindTo": "Alert"}, "activeRowActions": [ { "className": "Terrasoft.Button", "style":this.Terrasoft.controls.ButtonEnums.style.GREEN, "markerValue": "myButtonAction", "tag": "Delete", "caption": "Delete", } ] }
И не забыть добавить в LocalizableString
"Delete"
В методах
onActiveRowAction: function(buttonTag, primaryColumnValue) { if (buttonTag === "Delete") { this.Delete(); // нужная функция } },
Oleg, у меня с таким же способом не срабаытывает почему-то( Все так же как вы описали, но не появляется кнопка.
Oleg,
И не забыть добавить в LocalizableString
"Delete"
Не достаточно того, что вы написали в Caption название? Я вот этот пункт не сделал, не добавлял в LocalizableString.
Ислам, добрый день!
Реализация в этом примере рабочая.
Обратите внимание, что код нужно добавлять в "Схема детали: "Название вашей детали"" (так она будет отображатся в конфигурации).
Привожу пример своей реализации:
define("Schemae4042f8dDetail", [], function() { return { entitySchemaName: "NewTestDetail", details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/, diff: /**SCHEMA_DIFF*/[ { "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" } ] } } ]/**SCHEMA_DIFF*/, 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); // дальше Ваша реализация } }, } }; });