Show/Hide Toolbars

Справочник по интерфейсу администратора



Видимость ДП в зависимости от значения другого ДП

Ссылки Назад Вверх Вперед E-mail

В зависимости от значения ДП с ID=1234 (в данном случае, это ДП типа "Checkbox") скрыть\показать ДП с ID=5678 (в данном случае это ДП типа "Таблица").

$(window).on('MTFMainLoadFinished', function(){
  var ep1 = new ExtParam(1234);       //Получаем объект ДП с ID=1234
  ep1.change(function () {             //Привязка функции к событию Смены значения ДП с ID1234
    var ep2 = new ExtParam(5678);
    switch(ep1.val()) {
        case 'да':
        ep2.show();          
        break;
        case 'нет':
        ep2.hide();          
        break;
        default:
        ep2.show();  
        break;
     }
  });
  ep1.change();                           //Вызываем только что привязанную функцию ep1.change(), чтобы при загрузке ДП с ID=5678

был отображен в соответствии с требованиями условий.
});

 

Описанный выше пример отслеживает только "ручное" изменение ДП. Если надо отслеживать также автоматические изменения (в том числе сделанные смартами), то можно использовать следующую конструкцию:

  ...
  var show = true;  
  ...
  ep1.change(function(fromAutomatization) {
     ...  
     if(show && fromAutomatization) {
           ep2.show();
           show = false;
     }
     else {
           ep2.hide();
           show = true;
      }
  });
  ...

Здесь используется событие change(), которое возникает при автоматическом обновлении ДП (в результате работы смарта или других изменений на сервере). В функции, которая подписывается на событие change(), используется параметр fromAutomatization, который равен true при автоматическом обновлении и null при изменении ДП пользователем (однако в силу технических ограничений этот параметр не доступен для ДП типа Lookup или "Выпадающий список").

Полезные ссылки