Вызов модального окна из динамического действия в списке выбора изменений - PullRequest
1 голос
/ 09 июня 2019

Среда: Oracle APEX v5.1.2 / Oracle 12c R2

У меня есть отчет по интерактивной сетке, в котором один из моих столбцов (активный) является столбцом списка выбора на основе LOV со значениями «Y» или «N».

То, что я пытаюсь сделать, это вызвать модальное окно из динамического действия, когда значение в списке выбора равно «Y». Я попробовал следующий код:

В столбце «Активный» у меня есть DA, в котором есть событие изменения и условие на стороне клиента: элемент / столбец = значение (ACTIVE = Y)

У меня тогда ИСТИННОЕ условие: Выполнить PL / SQL

DECLARE  
    l_url varchar2(2000);  
    l_app number := v('APP_ID');  
    l_session number := v('APP_SESSION');  
BEGIN  
    l_url := APEX_UTIL.PREPARE_URL(  
        p_url => 'f?p=' || l_app || ':22:'||l_session||'::NO:22::',  
        p_triggering_element => '$("#is-active")'  
        );  
END;  

is-active - это мой статический идентификатор для столбца ACTIVE в моем IG. К сожалению, моя модальная форма на странице 22 не запускается / не появляется.

1 Ответ

1 голос
/ 25 июня 2019

Я нашел решение, вам нужно, например, создать скрытый элемент страницы (P2_URL) и установить тип значения по умолчанию равным PLSQL Expression, а затем в выражении plsql написать следующую строку plsql:

apex_util.prepare_url('f?p=&APP_ID.:4:&SESSION.::&DEBUG.::::', p_triggering_element => '$(''#is-active'')')

тогда в вашем динамическом действии вместо выполнения plsql вы должны выполнить следующий код javascript:

eval($('#P2_URL').val())

для получения более подробной информации прочитайте это articel

...