Вопрос

Делать неактивным пункт меню "Действия(Actions)" в зависимости от заполнения поля Lookup на странице раздела

Делать неактивным(Серым) пункт меню "Действия(Actions)" в зависимости от заполнения поля Lookup на странице раздела, не нашел такой информации , есть способ её реализовать?

Нравится

4 комментария
Лучший ответ

Добрый день, для этого вам нужно переопределить метод getSectionActions в нем необходимо для вашего пункта меню определить свойство отвечающее за доступность поля :

"Enabled": {bindTo: "isCustomActionEnabled"}



И реализовать метод isCustomActionEnabled (или как вы его назовете) 

 

   // Проверяет, на какой стадии находится заданный заказ.
  // activeRowId — значение первичной колонки выделенной записи реестра.
            isRunning: function(activeRowId) {
                // Получение коллекции данных списочного представления реестра раздела.
                var gridData = this.get("GridData");
                // Получение модели выбранного заказа по заданному значению первичной колонки.
                var selectedOrder = gridData.get(activeRowId);
                // Получение свойства модели — статуса выбранного заказа.
                var selectedOrderStatus = selectedOrder.get("Status");
                // Метод возвращает true, если статус заказа [Исполнение]. Иначе возвращает false.
                return selectedOrderStatus.value === OrderConfigurationConstants.Order.OrderStatus.Running;
            },
            // Определяет, будет ли доступен пункт меню. 
            isCustomActionEnabled: function() {
                // Попытка получения идентификатора активной (выбранной в реестре) записи.
                var activeRowId = this.get("ActiveRow");
                // Если идентификатор определен и статус выбранного заказа
                // [Исполнение], то возвращается true, иначе — false.
                return activeRowId ? this.isRunning(activeRowId) : false;
            }

Добрый день, для этого вам нужно переопределить метод getSectionActions в нем необходимо для вашего пункта меню определить свойство отвечающее за доступность поля :

"Enabled": {bindTo: "isCustomActionEnabled"}



И реализовать метод isCustomActionEnabled (или как вы его назовете) 

 

   // Проверяет, на какой стадии находится заданный заказ.
  // activeRowId — значение первичной колонки выделенной записи реестра.
            isRunning: function(activeRowId) {
                // Получение коллекции данных списочного представления реестра раздела.
                var gridData = this.get("GridData");
                // Получение модели выбранного заказа по заданному значению первичной колонки.
                var selectedOrder = gridData.get(activeRowId);
                // Получение свойства модели — статуса выбранного заказа.
                var selectedOrderStatus = selectedOrder.get("Status");
                // Метод возвращает true, если статус заказа [Исполнение]. Иначе возвращает false.
                return selectedOrderStatus.value === OrderConfigurationConstants.Order.OrderStatus.Running;
            },
            // Определяет, будет ли доступен пункт меню. 
            isCustomActionEnabled: function() {
                // Попытка получения идентификатора активной (выбранной в реестре) записи.
                var activeRowId = this.get("ActiveRow");
                // Если идентификатор определен и статус выбранного заказа
                // [Исполнение], то возвращается true, иначе — false.
                return activeRowId ? this.isRunning(activeRowId) : false;
            }

Колодяжный Владислав Эдуардович

Болшое спасибо!  попробую!

 

Ковалев Александр Игоревич,

Я немного переделал метод, задача состоит в том, что бы делать пункт меню "Действия" активным по значению поля.

Есть проблема, что метод выполняется быстрее чем загружается значение поля, в итоге выходит ошибка что value отсутствует и страница зависает......

Как можно обойти этот момент?

isTask=this.get("CgrType").value;          

 isCustomActionEnabled: function() {

                var isTask=this.get("CgrType").value;

                if(isTask="232c3a11-9f31-4d43-9c3f-df24b012dfc0")

                    return true;

                }

                else{

                    return false;

                }

            },

1) при описании кнопки в getActions добавляем "Enabled": {bindTo: "IsSmthVisible"}. IsSmthVisible - аттрибут. не функция. причину вы сами описали - функция банально не успевает выполниться.

2) к полю dependencies, функцию-перещелкиватель на изменение + её же в onEntityInitialized вызывайте.

3) не забываем при простановке IsSmthVisible выполнять this.publishPropertyToSection (как-то так функция называется)

 

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