У меня нет претензий, мой путь - лучший, но он работает:
Вам нужно присвоить кнопке статический идентификатор (мой будет LinkButton
).
Затем вы должны создать динамическое действие в вашей сетке для события Selection change [Interactive Grid]
. Сделайте True Action, которую Execute JavaScript Code
должен сделать этот бит кода:
if(this.data.selectedRecords[0] != undefined) {
//This is what happens when rows are selected
document.getElementById("LinkButton").disabled = false;
}
else {
//This is what happens when no rows are selected
document.getElementById("LinkButton").disabled = true;
}
** Вероятно, не лучшее решение, скорее всего, есть способ добиться этого с помощью Grid Widget
из APEX'S API , но я не смог вернуть ни один объект из моей сетки, используя его , Мой ответ отключит кнопку, если в этой сетке будет выбрана какая-либо строка (если у вас есть несколько отчетов / сеток), а не в конкретной Интерактивной сетке.
Мой ответ был очень вдохновлен этим человеком: http://thejavaessentials.blogspot.com/2017/03/getting-selected-rows-in-oracle-apex.html и этим сообщением: Отключение и включение кнопки ввода html
** Я тестировал его на APEX 19.1, но, как человек выше работал над APEX 5, я думаю, что он должен работать и на нем.