Как обновить и показать/скрыть кнопки в контейнере кнопок в модальном диалоговом окне в Oracle APEX на основе значения элемента?

В Oracle APEX 22.1 (база данных Oracle EE 21c) у меня есть модальное диалоговое окно, в котором есть контейнер кнопок с несколькими кнопками. Эти кнопки отображаются или нет, в зависимости от элемента в переменной диалогового окна, равной 0 или 1.

Когда я нажимаю кнопку «Удалить», запускается динамическое действие типа выполнения PL/SQL, изменяется значение поля в базе данных, а затем следуют два других действия Refresh True. Тип выполнения PL/SQL успешно изменяет значение поля в базе данных таблицы, и первое динамическое действие обновляет классическую область отчета в модальном диалоговом окне, показывая новое правильное значение поля.

Второе действие Refresh True Action пытается обновить область контейнера кнопок модального диалогового окна, чтобы скрыть кнопку «Отменить удаление» и отобразить остальные кнопки, все из которых являются состоянием сервера на основе значения этой переменной. Обновление не происходит (возможно, область контейнера кнопок не поддерживает событие обновления или не распространяется на свои кнопки)?

Как я могу добиться этого эффекта?

Заранее спасибо!

Я попробовал действие «Обновить» для области контейнера кнопок модального диалогового окна, но кнопки не отображаются/не скрываются соответственно.

Пожалуйста, уточните вашу конкретную проблему или предоставьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Как сейчас написано, трудно точно сказать, о чем вы спрашиваете.

Community 11.11.2022 08:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

«Обновить» не относится к контейнеру кнопок. Действие «обновить» в apex выполняет вызов ajax для обновления содержимого отчета — оно просто повторно отображает часть DOM, содержащую данные. В настоящее время только данные, отображаемые компонентом, могут быть обновлены с помощью частичного обновления страницы. Кнопка никогда не может «обновляться», она отображается в процессе рендеринга страницы и с этого момента находится в DOM на протяжении всего срока службы страницы.

Состояние на стороне сервера оценивается во время рендеринга страницы. Если условие на стороне сервера дает false во время рендеринга страницы, компонент не включается в dom. Таким образом, их нельзя показать с помощью динамического действия впоследствии (потому что они не находятся в доме), и их нельзя переоценить с помощью динамического действия (поскольку динамическое действие может манипулировать только домом, и это условие было оценено до того, как дом был отрендерен).

Решение вашей проблемы заключается в использовании действий «показать/скрыть» в динамическом действии для каждой из отдельных кнопок по причинам, описанным выше.

Большое спасибо за подробный и развернутый ответ. У меня ограниченные знания JS, поэтому я застрял. Действительно, проблема была решена с помощью другого человека. Решение заключалось в том, чтобы поместить код JS в оба действия часов кнопки с вызовами $v('BUTTON_STATIC_ID').Show/Hide соответственно. Однако этого недостаточно. Соответствующий JS-код также должен быть помещен в событие загрузки страницы, чтобы правильно отображать или не отображать кнопку в исходном состоянии. Наконец, условия сервера были полностью удалены, чтобы кнопки существовали в DOM и могли «отвечать» соответствующим образом.

Dionisis Kontominas 12.11.2022 13:04

Другие вопросы по теме