Перейти к основному содержимому
X-PROGGER
Приемы
практического
программирования
  • Начало
  • Новости
  • Языки ▼
    • PHP
    • HTML
    • CSS
    • JavaScript
    • PL/SQL ►
      • Ошибки в PL/SQL
  • Базы данных ▼
    • MySQL
    • Oracle
    • PostgreSQL
    • Введение в БД
  • Технологии ▼
    • Apex ►
      • Dynamic Action (DA)
    • AJAX
    • JQuery
  • Контакты

Вызов 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
Да такое ощущение что эти динамики специально создавали чтобы голову заморочить ))

Оставить отзыв







Свежие статьи

  • ORA-06502: Буфер символьных строк слишком маленький
    17. декабря. 2015
  • Типы исключений в PL/SQL
    17. декабря. 2015
  • Технология JQuery
    16. декабря. 2015
  • Руссификация интерактивного отчета в Apex
    3. декабря. 2015
  • Упрощение получение ссылок на элементы
    3. декабря. 2015
  • DOM (Document Object Model)
    3. декабря. 2015
  • Функция getElementById()
    3. декабря. 2015
Dynamic Action

Технология для декларативного определения обработчиков  событий на элементах, используемая в среде быстрой разработки приложений Application Express (Apex)
Сайт создан с Mozello - самым удобным онлайн конструктором сайтов.

Создайте свой веб-сайт или интернет-магазин с Mozello.

Быстро, просто, без программирования.

Сообщить о нарушении Подробнее