Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Lazy Load элементов страницы / 7 сообщений из 7, страница 1 из 1
30.08.2017, 14:05
    #39512811
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
Имею задачу:
отобразить страницу, на которой в зависимости от содержания предыдущих элементов, появляются последующие.
Например: выбираешь тип контрагента "Физ.лицо"/"Юр.лицо" - ниже открывается либо регион с элементами заполнения данных Физ.лица или Юр.лица.
Но далее необходимо еще не раз произвести подобный выбор и визуализировать тот или иной регион.
В результате страница становится очень "тяжелой" и громоздкой.
Нет ли возможности подгрузки необходимого контента по мере необходимости? Типа iFrame или аналогов?

Wizard в данном случае не подходит, т.к. страница должна быть не только формой ввода нового элемента данных, но и формой детального отображения уже существующего.
...
Рейтинг: 0 / 0
11.09.2017, 13:23
    #39519133
iv_roman_vl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
Курдль,

Так ведь IR итак загружает данные по lazy.
То есть показывает например первые 50 строк(или скока укажешь).
А потом просто можешь по пагинации смотреть репорт дальше.

Я так понимаю у тебя для юриков один репорт, для физиков другой.
При соответствующем выборе один просто скрывай.

Можешь также репорт через javascript api рефрешить, чтоб всю страницу целиком не перегружать.
...
Рейтинг: 0 / 0
12.09.2017, 09:04
    #39519655
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
iv_roman_vl,

Нет, я не про отчеты говорил, а про страницу типа Form.
...
Рейтинг: 0 / 0
12.09.2017, 09:12
    #39519663
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
КурдльИмею задачу:
овать тот или иной регион.
В результате страница становится очень "тяжелой" и громоздкой.
Нет ли возможности подгрузки необходимого контента по мере необходимости? Типа iFrame или аналогов?

Апекс чем и хорош, моэно использовать любой механизм, было бы желание.
...
Рейтинг: 0 / 0
12.09.2017, 09:26
    #39519672
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
blkangelАпекс чем и хорош, можно использовать любой механизм, было бы желание.
Ура! Желание есть!
Осталось дело за умением... Поможете?
Регионы на странице стандартными средствами можно открывать и скрывать по мере необходимости.
А можно ли их "подгружать" динамично, в зависимости от условий?
...
Рейтинг: 0 / 0
12.09.2017, 10:13
    #39519713
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
Пишите свой плагин, который возращает целиком ваш регион.
Можно и без плагина, через ДА.
Но в любом случае писать много и руками.
...
Рейтинг: 0 / 0
01.10.2017, 20:08
    #39529056
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazy Load элементов страницы
КурдльРегионы на странице стандартными средствами можно открывать и скрывать по мере необходимости.
А можно ли их "подгружать" динамично, в зависимости от условий?
Можно через submit, или грузить скрытыми.
Подгружать регионы полностью динамически - это уже считай фнукционал SPA и в коробке апекса этого пока нет.

Кстати, в копилку, небольшая демонстрация не док. метода через refresh для подгрузки Classic Report:
(правда, к сожалению, при отображении региона он не рисует items-ы, только сам Classic Report)

- вычисляется ИД региона
- грузится js файл виджета
- готовим узлы в DOM структуре под регион
- инициализируем виджет
- меняем значение item и посылаем refresh на регион.
- наблюдаем, как отобразится Classic Report.



Cтавим условие отображения региона, например :P3_NEW is not null.
item P3_NEW по умолчанию делаем null
атрибут региона Page Items to Submit устанавливаем в значение P3_NEW
static id в значение R03

SQL вычисляет ид региона, кот. используется дальше в js:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
-- вычисляем ид контейнера - обработчика событий региона
-- например "report_21379489948402457913_catch"
select 'report_' || region_id || '_catch' 
  into :PX_DIV_CATCH 
from apex_application_page_regions t 
where t.page_id= :app_page_id
  and t.application_id = :app_id
  and t.static_id = 'R03' -- static region id



JS:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
// если classic report на странице еще не использовался, грузим библиотеку
if ( !apex.widget.report ) {

  var lUrl = "/i/libraries/apex/minified/widget.report.min.js?v=5.1.3.00.05";
  $.getScript( lUrl, function() {


    // добавляем регион во второй ряд (пример под универсальную тему)
    $(".container .row:first").after("<div class='row'><div class='col col-12'><div id='R03'></div></div></div>"); 
    $("#R03").append("<div id='report_21379489948402457913_catch'></div>");

    // инициализируем
    apex.widget.report.init("R03",{"pageItems":"#P3_NEW","styleChecked":"#dddddd","internalRegionId":"21379489948402457913"});  

    // меняем значение item, чтобы условие отображения региона вернуло true
    $s("P3_NEW","1");

    // обновляем
    $("#R03").triggerHandler("apexrefresh");
  });
} else {
    // добавляем регион вторым после первого (пример под универсальную тему)
    $(".container .row:first").after("<div class='row'><div class='col col-12'><div id='R03'></div></div></div>"); 
    $("#R03").append("<div id='report_21379489948402457913_catch'></div>");

    // инициализируем
    apex.widget.report.init("R03",{"pageItems":"#P3_NEW","styleChecked":"#dddddd","internalRegionId":"21379489948402457913"});  

    // меняем значение item, чтобы условие отображения региона вернуло true
    $s("P3_NEW","1");

    // обновляем
    $("#R03").triggerHandler("apexrefresh");
}



...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Lazy Load элементов страницы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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