Вызов DA (dynamic action) из JavaScript
3. Декабрь, 2015 в 1:20,
1 комментарий
Одной из проблем, с которыми встречаются разработчики Апекс являются затруднения
при попытке вызова созданного dinamyc action из пользовательской js-функции.
И это не странно, так как такой вызов происходит через инициализацию события
элемента, что совсем не очевидно.
В этом материале мы приведем пошаговый пример и покажем как же все-таки вызвать динамик экшн из пользовательской функции на клиенте.
В этом материале мы приведем пошаговый пример и покажем как же все-таки вызвать динамик экшн из пользовательской функции на клиенте.
Показать это мы можем на примере клика по встроенному в апекс дереву, при нажатии
на ветку которого должно происходить изменение скрытого элемента, его обновление
в сессии и запуск DA.
Но перед тем, как начать, сделаем небольшое отступление. Так как мы будем использовать функцию Document.getElementById(), чтобы нам не писать эту конструкцию каждый раз, давайте зажмем ее в промежуточную функцию ById(), которая будет нам возвращать объект из DOM. Вид у нее будет достаточно простой.
function byId(thid)
{
return document.getElementById(thid);
}
Теперь можно приступать к формированию обработчиков на странице Вашего apex - прило
1. Обработка нажатия
При работе с dynamic action нам потребуется функция, которая будет помещать необходимое значение в скрытый элемент и инициализировать событие изменения этого элемента (так как DA среагирует только на изменение внесенное им самим, а изменение значение элемента обычным JS будет проигнорировано).
То есть, на ветку дерева, на событие onClick, помещаем вызов нашей пользовательской функции и передаем ей значение выбранной ветки. Например:
javascript:void(start_fun('||sql_val||')Сам вид js - функции start_fun() будет иметь вид
function start_fun(v)
{
byId('p_hidden_element').value=v;
apex.event.trigger('#p_hidden_element','change','');
}Что происходит в этой функции. В ней всего две строки. Первой строкой мы помещаем значение в элемент с id - p_hidden_element (здесь нужно указать ИД своего элемента). А следующей, второй строкой мы инициируем событие изменения этого значения.
2. Настройка DA (dynamic action)
Дальнейшие действия также не сложны. Надо настроить DA. Для этого теперь достаточно создать DA, который будет реагировать на событие change элемента p_hidden_element.
1 комментарий - Вызов DA (dynamic action) из JavaScript
Ronald - 15. Сентябрь, 2017 в 22:33
Да такое ощущение что эти динамики специально создавали чтобы голову заморочить ))