Первое, что я бы порекомендовал, - это перейти к действию Dynami c, а не пытаться поместить весь код в ссылку. Кроме того, я думаю, что кнопки лучше, чем ссылки (и они могут быть стилизованы под кнопки).
Начните с перехода к https://apex.oracle.com/ut. Перейдите в «Справка»> «Построитель кнопок» и создайте нужную кнопку. Затем скопируйте значение из поля Вся разметка .
Измените Тип столбца Ссылка на HTML Выражение и вставьте HTML из Button Builder в HTML Выражение поле. Я сделал мою кнопку похожей на ссылку (как у вас), добавил собственный класс в свойство класса с именем my-button и добавил атрибут данных для значения первичного ключа (моя таблица была EMP, поэтому ПК был EMPNO). В конечном итоге это выглядело так:
<button type="button" class="t-Button t-Button--link my-custom-button" data-id="&EMPNO.">Click me!</button>
Присвойте интерактивной сетке Stati c ID значение my-ig .
После этого создайте новое действие Dynami c. Установите Имя на . Моя кнопка нажала , Событие на Нажмите , Выбор Введите на jQuery Селектор и jQuery Селектор до .my-button . Наконец, установите Event Scope на Dynami c, который будет использовать делегирование события для поддержания привязки события в рабочем состоянии, если отчет обновляется (см. это для деталей ) .
В действии установите Действие на Выполнить JavaScript Код . Введите следующий код в поле Код :
var id = $(this.triggeringElement).data('id');
var model = apex.region('my-ig').call('getViews').grid.model;
var record = model.getRecord(id);
var job = model.getValue(record, 'JOB');
$s('P1_ITEM', job);
alert($v('P1_ITEM'));
Этот код начинается с получения значения первичного ключа из атрибута данных на кнопке с использованием jQuery 's data
метод. Затем получается ссылка на модель, которая используется IG. Затем вызывается метод getRecord
модели и передается значение первичного ключа. Наконец, метод getValue
модели используется для получения значения 'JOB' из записи. Я пошел за столбцом JOB с тех пор, как использовал таблицу EMP, но вы можете go после любого столбца, который вам нужен.
Подробнее о методах модели вы можете узнать здесь: https://apex.oracle.com/js> Интерфейсы> Модель.