powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как обновить регион с картинкой?
2 сообщений из 2, страница 1 из 1
Как обновить регион с картинкой?
    #37636854
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу сделать показ BLOB-картинки по клику на иконке в отчете.
1. Сделал отчет, добавил иконку в отчет с атрибутом name="showImage"
2. Создал регион где разместил два итема P5_IMAGE_ID(hidden) и P5_IMAGE типа DisplayImage
В сеттингах стоит Based on BLOB column returned by SQL statement
SQL Statement: Select blob_field from blobs_table where blob_id=:P5_IMAGE_ID

Все вроде бы работает. Если передавать P5_IMAGE_ID через URL то картинка показывается нормально...

3. Создал DynamicAction на JquerySelector img[name="showImage"]
4 Создал три действия
4.1 JavaScript
$s('P5_IMAGE_ID',this.triggeringElement.getAttribute("value"));
Передаю ИД строки в итем
4.2 PL/Sql
null;
и аффектед итем P5_IMAGE_ID (прочитал про этот костыль здесь на форуме)
4.3 Refresh Region
обновляю регион

В итоге при клике итем P5_IMAGE_ID устанавливается в правильное значение (это видно в Session) но картинка перерисовываться не хочет никак.
Что я делаю не так?

З.Ы. Oracle 11 XE + Apex 4.1
...
Рейтинг: 0 / 0
Как обновить регион с картинкой?
    #37638665
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Migelle,

Запрограммированные в DA ajax requests поддерживают далеко не все виды обновлений.

Если интересует ajax способы, я знаю два:

1. Хранить и выводить в items пути к картинкам и обновлять их. (Можно воспользоваться апексным файловым репозиторием apex_application_files или реализовать обработку запросов url в page/application process или в public function)

2. Вручную запрограммировать обработку и выполнение ajax запросов через htmldb_get и onDemand процессы.

Кратко по 1:

можно выводить и обновлять html:
Код: html
1.
<img id="P_ITEM" src="p?n=FILE_ID"/> 


где FILE_ID - ид. файла apex_application_files.id

либо же формировать url такими, что обработка будет переноситься на page/application process или public function
И там выводить содержимое картинки, например для апексного репозитория (в apex 4.1):

Код: plsql
1.
2.
APEX_UTIL.GET_FILE ( 5424627234156487, 'YES' );
apex_application.stop_apex_engine;



В данном конкретном случае, можно воспользоваться пакетом wpg_docload в соответствующем месте:
Код: plsql
1.
2.
3.
4.
   OWA_UTIL.mime_header ( p_img_mime, FALSE);
   HTP.p ('Content-length: ' || p_img_length);
   OWA_UTIL.http_header_close;
   WPG_DOCLOAD.download_file (p_img_blob);



По п.2 описывать слишком долго. Search in Google.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как обновить регион с картинкой?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]