Как добавить кнопку в деталь с списком? (все ещё активый вопрос)
Доброго времени суток. Имею пробелму. Нужно в преднастроенной странице в деталь карты поставить кнопку для активной записи детали. Кнопку "Заблокировать карту".
![]()
Попробовал из статьи тут, тут, и тут , но никак не появляется кнопка. Подскажите как мне реализовать данную задачу? Я отыскал все ответы в комьюнити. Но у меня не появляется кнопка. Прощу помощи. Спасибо.
Нравится
Ислам, добрый день!
Реализация в этом примере рабочая.
Обратите внимание, что код нужно добавлять в "Схема детали: "Название вашей детали"" (так она будет отображатся в конфигурации).
Привожу пример своей реализации:
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);
// дальше Ваша реализация
}
},
}
};
});