powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
25 сообщений из 111, страница 1 из 5
Модальный диалог выбора
    #39297522
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Хотелось бы сделать эффективный модальный "селектор".
С моим поверхностным знанием JS что-нибудь, да получится, но уж точно не эффективное (будет совершать лишние сабмиты, обращения к БД и т.п.) :)

Итак, прецеденты:
1. На родительской странице жмакаешь кнопку "Выбрать клиента"
2. Открывается модальный диалог "Выбор клиента" с интерактивным репортом.
3. Находишь интересующую тебя запись и клацаешь на ней (или пиктограмме).
4. Модальный диалог закрывается, на родительской форме заполняется поле "Клиент"

Как я понимаю, это достигается комбинацией DA и JS и я даже могу предположить некоторые варианты.
Но хотелось бы воспользоваться выверенным решением лучших практиков.
Заранее благодарен.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297529
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, вот
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297537
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

Ладно, опишу своё решение, а вы покритикуете:

1. Создаю ITEM P1_ID_SELECTED (скрытый)
2. Изменяю параметры ID-колонки репорта:
2.1
Код: html
1.
Column Attributes > Column Link > Link Attributes > onClick="$s('P1_ID_SELECTED',#EMPNO#);doSubmit();"


2.2
Код: html
1.
Column Attributes > Column Link > Target = URL


2.3
Код: html
1.
Column Attributes > Column Link > URL = #


3. Ставлю DA на изменение P1_ID_SELECTED
4. Вуаля!
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297538
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}


Все пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov $s("PXXX_PAGE_ITEM", idValue, displayValue);

P.S. DA=JS, разница только в том, JS ты пишешь код вручную, DA Апекс это делает за тебя.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297540
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, вот
О, спасибо!
Пока писал своё решение - прислали помощь!
Оч. приятно! :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297542
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelЯ в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}



Спасибо! Вроде я пришел к похожему решению (см. выше). Значит расту над собой! :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297544
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelЯ в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}



Спасибо! Вроде я пришел к похожему решению (см. выше). Значит расту над собой! :)
Вы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297601
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
а зачем ещё одну тему открыл?
Вот решение.
19543332
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297603
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
красивым будет решение когда в DA появится Refresh или все события для родительской формы.
То что ты привёл выше 19587486 банально забудешь завтра же. А надо простое чтобы помнил всегда и везде.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
а зачем ещё одну тему открыл?
Вот решение.
19543332
эту строку написать в урл колонки таблицы модального окна.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297678
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
Я понимаю, что jQuery. модальный диалог и "вызывающее окно" - по сути одна и та же страница. Но стараюсь держаться ближе к APEX, чтобы мое приложение было понятнее тем, кто будет его развивать далее, да и мне самому.

Я не понял до конца, как применить Ваше решение в моём случае.
Сразу прописать в свойствах атрибута IR закрытие модального диалога и запись выбранного значения в ITEM вызывающей страницы?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНо стараюсь держаться ближе к APEX
+1
не люблю диалоги (которые внешне снаружи) внутри базовой страницы.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297794
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelВы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
Я понимаю, что jQuery. модальный диалог и "вызывающее окно" - по сути одна и та же страница. Но стараюсь держаться ближе к APEX, чтобы мое приложение было понятнее тем, кто будет его развивать далее, да и мне самому.

Я не понял до конца, как применить Ваше решение в моём случае.
Сразу прописать в свойствах атрибута IR закрытие модального диалога и запись выбранного значения в ITEM вызывающей страницы?

Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297808
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.

Спасибо! Но мне кажется, что здесь есть один изъян :(
Что, если этот "модальный селектор" вызывается разными страницами?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297819
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.

Спасибо! Но мне кажется, что здесь есть один изъян :(
Что, если этот "модальный селектор" вызывается разными страницами?
передавайте в модальный селектор ID элемента в который надо вернуть значение.

Код: javascript
1.
parent.$s($x('PXXX_RETURN_NAME').value,#EMPNO#);closePopup();


где PXXX_RETURN_NAME - скрытый элемент, значение которого передалось с родительской стороны.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297820
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или так
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closePopup();
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297830
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, уточните, пожалуйста, какую версию Apex вы используете?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297839
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelИли так
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closePopup();


Код: javascript
1.
parent.$s($x('PXXX_RETURN_NAME').value,#EMPNO#);closePopup();





Ни та, ни другая конструкция не срабатывает.

Срабатывает во эта:

Код: javascript
1.
parent.$s('PXXX_RETURN_NAME',#EMPNO#);closePopup();



Правда диалог не закрывает, а только вносит выбранные данные в PXXX_RETURN_NAME
Курдль, уточните, пожалуйста, какую версию Apex вы используете?
5.0.1
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
пробый все варианты. Потом FAQ напиши.
Я тебе дал из рабочего варианта у заказчика.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297874
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
пробуй все варианты. Потом FAQ напиши.
Я тебе дал из рабочего варианта у заказчика.

Спасибо!
А твоё решение позволяет вызывать диалог из разных страниц?

Вот это решение тоже работает и вполне меня устраивает:
Код: javascript
1.
$s('PXXX_RETURN_NAME',#EMPNO#);


Только оно требует промежуточного ITEM на модальной странице.
Но иного способа обеспечить вызов диалога из разных страниц я не вижу.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297881
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВсе пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov
Код: javascript
1.
$s("PXXX_PAGE_ITEM", idValue, displayValue);



А что такое displayValue?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297888
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльВот это решение тоже работает и вполне меня устраивает:
да. У меня там конкретный айтемс на родительской. Из разных не подходит.
Я жду 5-ку.
Разве в 5-ке нет ничего для этого?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297892
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльВот это решение тоже работает и вполне меня устраивает:
если работает, опиши потом полностью при закрытии темы.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297901
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльВот это решение тоже работает и вполне меня устраивает:
да. У меня там конкретный айтемс на родительской. Из разных не подходит.
Я жду 5-ку.
Разве в 5-ке нет ничего для этого?
Я на 5-ке и не знаю, что ты имеешь в виду. На 4-ке вроде ж вообще модальных диалогов не было?..

DA под названием Dialog Closed на 4-ке была?
Я ее пользую на вызывающей странице, чтобы заполнить те поля, что были инициализированы в модальном диалоге.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297909
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНа 4-ке вроде ж вообще модальных диалогов не было?..
всё верно.
Я шёл как велит Оракл.
Т.е. это отдельная страница с шаблоном Popup
и вызовом
Код: sql
1.
javascript:popupURL('f?p=&APP_ID.:1:&SESSION.::&DEBUG.');


- заказчик не жалуется.
Вот я про 5-ку и спрашиваю.
НИКТО не знает что там изменилось?
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 1 из 5
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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