powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Развернутое дерево
25 сообщений из 25, страница 1 из 1
Развернутое дерево
    #36895243
AlMoVi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Столкнулся с проблемой в версии 4, что при первоначальном заходе на страницу с деревом, или при переходе по линку с дерева (рефреш) на эту же страницу, дерево сворачивается. Есть ли возможность, чтобы дерево всегда было развернуто.
...
Рейтинг: 0 / 0
Развернутое дерево
    #36913590
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, повозился ради интереса с jsTree - и разочарован. Не понравилось мне то, что скрипты, связанные с деревом, вызываются перед закрывающим тегом </body>. И нормальный способ передать что-либо в apex.widget.tree.init() для настройки дерева не увидел; setTimeout(...) лично я за нормальный способ не считаю.

Так что придётся пока что использовать плагины для работы с деревьями в APEX 4. Один уже на форуме выкладывали ...
...
Рейтинг: 0 / 0
Развернутое дерево
    #36929157
vetKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно.
$("#treeId").tree({ opened:Li id });
ну или еще какая-нить jQuery фича
( <input onclick='$.tree.focused().open_all("#phtml_1");' value="Open all children" type="button">)
смотрим доку jsTree
...
Рейтинг: 0 / 0
Развернутое дерево
    #36929166
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vetKa,

оно-то можно (apex.jQuery.tree.reference(...).open_all()), но вот где его указать, чтобы вызвать после того, как отработает apex.widget.tree.init()? С учётом того, что последнее добавляется в скрипте перед самым закрывающим тегом BODY в $(document).ready.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Развернутое дерево
    #37708955
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLervetKa,

оно-то можно (apex.jQuery.tree.reference(...).open_all()), но вот где его указать, чтобы вызвать после того, как отработает apex.widget.tree.init()? С учётом того, что последнее добавляется в скрипте перед самым закрывающим тегом BODY в $(document).ready.

Да вот же здесь сделано! Как именно, разобраться пока не удалось, мож будут мнения?
...
Рейтинг: 0 / 0
Развернутое дерево
    #37709477
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,

есть мнение. Они создают обращением к пакету БД JS-код, который вызывают при загрузке страницы:

Код: html
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
<script src="/istore/htmldb_istore_sections.catTreeJs?APP=500&SESS=2452886860697062" charset="utf-8" type="text/javascript">
$(document).ready(function () {
    var xcl = null;
    $("#treeDiv").live("mouseenter", function (e) {
        $("#catData").stop(true, true).slideDown();
    });
    $("#treeDiv").live("mouseleave", function (e) {
        $("#catData").stop(true, true);
        pd = "*" + $("#productData").html() + "*";
        if (pd != "*null*") {
            $("#productData").stop(true, true).slideDown();
        }
        $.post("htmldb_istore_sections.categoryDefault", {
            p_catid: "1",
            sess: "&SESSION.",
            APP_ID: "&APP_ID."
        }, function (data) {
            $("#catData").html(data);
            $("#catData").css("height", $("#catDataTable").height());
        });
    });
    // $("#catData").live("mouseenter", function(e) {
    // $("#catData").stop(true, true).hide();
    // });
    $(".tree li").live("mouseenter", function (e) {
        $("#catData").stop(true, true);
        $("#catData").clearQueue();
        e.stopPropagation();
        id = $(this).attr("id");
        try {
            xcl.abort();
        } catch (ce) {}
        xcl = $.post("htmldb_istore_sections.categories", {
            p_catid: id,
            sess: "&SESSION.",
            APP_ID: "&APP_ID."
        }, function (data) {
            if (data.length > 100) {
                $("#catData").html(data);
                $("#catData").css("height", $("#catDataTable").height());
                $("#catData").stop(true, true).slideDown();
            }
        });
    });
});

function start() {
    apex.jQuery.tree.reference("tree1504233503435163070").open_branch(apex.jQuery("#1"));
    $.post("htmldb_istore_sections.categoryDefault", {
        p_catid: "1",
        sess: "&SESSION.",
        APP_ID: "&APP_ID."
    }, function (data) {
        $("#catData").html(data);
        $("#catData").css("height", $("#catDataTable").height());
    });
}
window.onload = start;
</script>



Красивый ход.
...
Рейтинг: 0 / 0
Развернутое дерево
    #37709651
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerdvksqlru,

Красивый ход.

Что-ж, раз задачу смогли решить заокеанские коллеги, то может быть и кто-то из участников форума предложит простое решение: как при перезагрузке страницы показать ранее выбранный пользователем узел дерева?
...
Рейтинг: 0 / 0
Развернутое дерево
    #37710035
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dvksqlru, поле
Код: plsql
1.
Selected Node Page Item

таки творит чудеса!
...
Рейтинг: 0 / 0
Развернутое дерево
    #37826817
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно пожалуйста по подробней, как это использовать для решения проблемы?
...
Рейтинг: 0 / 0
Развернутое дерево
    #37826847
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался, спасибо
...
Рейтинг: 0 / 0
Развернутое дерево
    #37896953
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста, как вы решили проблему сохранения узлов дерева в развернутом состоянии после submita страницы? Или может есть какой то способ динамически добавлять новые узлы и записи в дерево?
...
Рейтинг: 0 / 0
Развернутое дерево
    #37897195
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы не создавать новых тем буду писать здесь...
http://apex.oracle.com/pls/otn/f?p=54245:1
http://apex.oracle.com/pls/apex/
WorkSpace : TRAL
demo/demo
Вопросы / задачи:
1. Есть простой способ закрепить footer?))
2. Выбираем дирекцию - 2, жмем Expand All, видим структура состоит из должностей и разного вида подразделений. Как в дереве должностям присвоить одну картинку, подразделениям другую и отображать в порядке должности first?
3. Пытаемся добавить подразделение или должность, в зависимости от выбранного типа в select-list. Жмем добавить, происходит submit, после перегрузки страницы дерево должно раскрыться, выделенный элемент остаться, новый элемент отображаться в месте куда его добавляли.
4. В идеале сделать добавление динамическим, жмем ADD, в выделенном узле дерева появляется новый элемент, insert данных прошел.
...
Рейтинг: 0 / 0
Развернутое дерево
    #37898752
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как добавить свои атрибуты к tree из селекта, по которому строится дерево при загрузки страницы. Сейчас есть только id, в link я прописал функцию, которая через demond процесс вытаскивает все эти атрибуты, но это по каждому клику по элементу дерева приходится лезть в бд...
...
Рейтинг: 0 / 0
Развернутое дерево
    #37898961
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tBikRuЧтобы не создавать новых тем буду писать здесь...
http://apex.oracle.com/pls/otn/f?p=54245:1
http://apex.oracle.com/pls/apex/
WorkSpace : TRAL
demo/demo
Вопросы / задачи:
1. Есть простой способ закрепить footer?))
2. Выбираем дирекцию - 2, жмем Expand All, видим структура состоит из должностей и разного вида подразделений. Как в дереве должностям присвоить одну картинку, подразделениям другую и отображать в порядке должности first?
3. Пытаемся добавить подразделение или должность, в зависимости от выбранного типа в select-list. Жмем добавить, происходит submit, после перегрузки страницы дерево должно раскрыться, выделенный элемент остаться, новый элемент отображаться в месте куда его добавляли.
4. В идеале сделать добавление динамическим, жмем ADD, в выделенном узле дерева появляется новый элемент, insert данных прошел.
1. Ничего не понял, что именно закрепить?
2. Есть же столбец icon + decode/case + order siblings by
3. В чем проблема?
4. Погуглите на тему Ajax.

авторПодскажите, как добавить свои атрибуты к tree из селекта, по которому строится дерево при загрузки страницы. Сейчас есть только id, в link я прописал функцию, которая через demond процесс вытаскивает все эти атрибуты, но это по каждому клику по элементу дерева приходится лезть в бд...
С данным видом дерева - используя css, jQuery, value записывается в id
...
Рейтинг: 0 / 0
Развернутое дерево
    #37899101
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDev1. Ничего не понял, что именно закрепить?
2. Есть же столбец icon + decode/case + order siblings by
3. В чем проблема?
4. Погуглите на тему Ajax.
1.

2. Спс здесь понятно.
3. Не представляю, как сохранить структуру открытого до submita дерева.
4. Из всего нагугленого самое интересное, что я нашел , правда там удаляют динамически.
SvDevС данным видом дерева - используя css, jQuery, value записывается в id
Как используя те же методы, добавить другие данные из моего селекта в атрибуты например typ, parent_id и тд...
...
Рейтинг: 0 / 0
Развернутое дерево
    #37899105
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Развернутое дерево
    #37899270
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1. Есть простой способ закрепить footer?))
Чтобы плавал вместе со скроллом?
Всё достаточно просто, поищите подходящий jquery plugin, который вам подойдёт, потом прикручивайте к page template, как там будет написано
tBikRuSvDevС данным видом дерева - используя css, jQuery, value записывается в id
Как используя те же методы, добавить другие данные из моего селекта в атрибуты например typ, parent_id и тд...
Изучайте jQuery manipulation Traversing , Ничего сложного здесь нет, + добавление в базу можете сделать через DA execute pl/sql code
по кнопкам как у вас сейчас или через выпадающее меню, как в примере
автор3. Не представляю, как сохранить структуру открытого до submita дерева.
STFF
12266821
Ajax Tree 2link
...
Рейтинг: 0 / 0
Развернутое дерево
    #37899679
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDevЧтобы плавал вместе со скроллом?
Всё достаточно просто, поищите подходящий jquery plugin, который вам подойдёт, потом прикручивайте к page template, как там будет написано
Как на нормальных сайтах, когда footer всегда внизу, независимо есть ли прокрутка или нет. Ладно, думаю, посмотрю template там css стилей добавлю к блоку footera.[/quot]
SvDevИзучайте jQuery manipulation Traversing , Ничего сложного здесь нет, + добавление в базу можете сделать через DA execute pl/sql code
по кнопкам как у вас сейчас или через выпадающее меню, как в примере
Скачал, почитаю спасибо.[/quot]
автор3. Не представляю, как сохранить структуру открытого до submita дерева.
Разобрался: в Edit Tree Attributes выставляем Selected Node Page Item на тот hidden item, который будет хранить ID выбранной в дереве ветки. Там же в Tree Query прописываем вызов функции, которая при каждом клике по узлу дерева присваивает нашему hidden itemy (P1_SELECTED_ID) значение ID выбранного узла
Код: plsql
1.
'javascript:select('''|| "ID" ||''')' as link

. В Edite страницы в Function and Global Variable Declaration описываем функцию select.
Код: javascript
1.
2.
3.
function select(node){
  $s("P1_SELECTED_ID", node);
  }

Все, дальше создаем Branches на переход по кнопке (ADD) на туже страницу и передаем P1_SELECTED_ID со значением &P1_SELECTED_ID. Теперь при нажатии на кнопку Add, происходит redirect на эту же страницу, но структура дерева сохраняется.
...
Рейтинг: 0 / 0
Развернутое дерево
    #37901323
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не нашел ответа на форуме, спрошу здесь, тк это в продолжении темы...
1. Есть Demond процесс, в нем переменной P1_NEW_ID присваивается новый ID
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
begin
    select sq.nextval into :P1_NEW_ID from dual; 
    insert into DEPT(ID, DNAME, PARENT_ID, ORD, MANID)
    values (:P1_NEW_ID , apex_application.g_x01, apex_application.g_x02, null, apex_application.g_x03);
    owa_util.mime_header('text/xml', FALSE );  
    htp.p('Cache-Control: no-cache');  
    htp.p('Pragma: no-cache');  
    owa_util.http_header_close;  
    htp.p('{result:"success",message:"Hello world"}'); 
exception when others then  
    owa_util.mime_header('text/xml', FALSE );  
    htp.p('Cache-Control: no-cache');  
    htp.p('Pragma: no-cache');  
    owa_util.http_header_close;  
    htp.p('{result:"failed",message:"Hello Apex'||sqlerrm||'"}');  
end;


2. В javascript функции вызываю процесс и в функции мне нужно использовать значение этого нового ID (P1_NEw_ID).
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function addDept(){ 
  var ro = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=ADD_DEPT',$v('pFlowStepId'));
    ro.addParam('x01', $v('P1_DNAME'));
    ro.addParam('x02', $v('P1_SELECTED_ID'));  
    ro.addParam('x03', $v('P1_DIR'));
    gReturn = ro.get();    
    var j = eval("("+gReturn+")");  
    if (j.result == "success") {
    alert(document.getElementById("P1_NEW_ID").value); 
    $("#" + $v("P1_SELECTED_ID")).append('<ul><li id='+$v("P3_NEW_ID")+' class="last leaf"><a href="javascript:select('+$v("P1_NEW_ID")+')" style class><ins></ins>'+$v("P1_DNAME")+'</a></li></ul>'); 
    }
}


Проблема, что ID не обновляется если несколько раз вызвать эту функцию, хотя в Session переменная P3_NEW_ID постоянно увеличивается, как только вызывается эта функция.
...
Рейтинг: 0 / 0
Развернутое дерево
    #37901531
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tBikRu,

Например, json_SetItems

Через DA не проще?
...
Рейтинг: 0 / 0
Развернутое дерево
    #37902648
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDevtBikRu,
Например, json_SetItems
Через DA не проще?
Я начинающий, пока не добрался до DA и json вообще не знаю, но с поставленной задачей справился.
Столкнулся с проблемой, что при клике по иконке происходит выделение элемента дерева, но javascript: function select(), которая прописана на onclick в linke дерева не запускается.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select case when connect_by_isleaf = 1 then 0
            when level = 1             then 1
            else                           -1
       end as status, 
       level, 
       "DEPARTMENT" as title, 
       case 
        when typ = 2 then '&IMAGE_PREFIX.libraries/jquery-jstree/0.9.9a2/themes/classic/icons.png' 
        else '&IMAGE_PREFIX.apex/builder/tree_process.png'
       end as icon, 
       "ID" as value, 
       null as tooltip, 
      'javascript:select('|| "ID" ||')' as link,
       typ as typ,
       ord as ord 
from "#OWNER#"."V_TREE"
start with "PARENT_ID" is NULL AND ID = :P1_DIR
connect by prior "ID" = "PARENT_ID"
order siblings by typ, ORD


...
Рейтинг: 0 / 0
Развернутое дерево
    #37902727
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Apex 4.0.2 (Oracle XE) помещаю в Execute when Page Loads и не работает, а если вызвать этот код с кнопки то работает.
Код: javascript
1.
document.getElementById("apex_layout_15025645262535605").firstChild.firstChild.nextSibling.nextSibling.style.display = 'none';


Зато на http://apex.oracle.com/pls/apex/f?p=54245:1 все отлично. И через Execute when Page Loads и через кнопку
Чудеса блин...
Сайт
ApplicationBuilder
WorkSpace : TRAL
demo/demo
...
Рейтинг: 0 / 0
Развернутое дерево
    #37903013
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tBikRuApex 4.0.2 (Oracle XE) помещаю в Execute when Page Loads и не работает, а если вызвать этот код с кнопки то работает.
Код: javascript
1.
document.getElementById("apex_layout_15025645262535605").firstChild.firstChild.nextSibling.nextSibling.style.display = 'none';


Зато на http://apex.oracle.com/pls/apex/f?p=54245:1 все отлично. И через Execute when Page Loads и через кнопку
Чудеса блин...
Сайт
ApplicationBuilder
WorkSpace : TRAL
demo/demo
Прошу прощения, в Execute when Page Loads перед кодом была строчка с несуществующим Itemom.
Проблема с иконкой актуальна.
...
Рейтинг: 0 / 0
Развернутое дерево
    #37936408
tBikRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста передать значение с одной страницы на другую.
Есть <input ID = "P1_PARENT" value = "Передаваемое значение"> на странице 1, при нажатии элемент<img ID = "P1_IMG" onclick = "javascript:popupURL('f?p=54245:2:1189628244955001::::P2_X:&P1_PARENT.')"> должно открываться окно 2 и <inputy ID = "P2_X"> должно передаваться значение от P1_PARENT.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Развернутое дерево
    #38633577
//раскрываем список при загрузке страницы
$(function(){
//выделяем отредактированный элемент
setTimeout('expandAll()',1000);
setTimeout('sel()',1000);
})

function expandAll(){
var tree_id = $('.tree').attr('id');
apex.widget.tree.expand_all(tree_id );
}
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Развернутое дерево
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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