Show/Hide Toolbars

Полное руководство администратора

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

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

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

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

 

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

  ...
  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 или "Выпадающий список").

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