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

В Apex 5 создаю элементарнейшее дерево с запросом вида

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
           SELECT CASE WHEN CONNECT_BY_ISLEAF = 1 THEN 0 WHEN LEVEL = 1 THEN 1 ELSE -1 END AS status
                ,  LEVEL
                ,  LEGAL_STRUCTURE_NAME AS title
                ,  NULL AS icon
                ,  ID AS VALUE
                ,  NULL AS tooltip
                ,  'javascript:$s("P87_PARENT_ID", ' || ID || ');' AS link
             FROM LEGAL_STRUCTURE_HIERARCHY
       START WITH parent_id IS NULL
       CONNECT BY PRIOR id = parent_id
ORDER SIBLINGS BY LEGAL_STRUCTURE_NAME


Поле ID из таблицы кладется в поле VALUE дерева (строка ID AS VALUE в запросе)

Вопрос такой - как мне найти элемент дерева с заданным id? Точнее все просто, я хочу подсветить этот элемент дерева другим цветом
Синтаксис, я так понимаю, будет выглядеть примерно так:

Код: javascript
1.
apex.jQuery("#P87_PARENT_ID_TREE").find('li[id*='+$("#P87_PARENT_ID").val()+']').css("color","red")



проблема именно в методе find - не знаю, что туда написать, а может и вообще не так писать нужно. Просто уже пересмотрел кучу страниц в интернетах и чё-то не могу найти никак :(
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39113990
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Zeke,
Как же все мудренно
Вам только подсветить надо?
Зачем метод find..
У вас произошло событие клик. У вас есть куда кликнули... Вот точка отсчета у вас есть. Вам даже ИД не надо. Поменяйте у элемента на который вы кликнули
Код: plaintext
this
его стиль.
Код: javascript
1.
$(this).css("color","red")
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39113996
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
в 5-ке нет автоподсветки кликнутого?
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114005
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечаю вам обоим сразу :)

Подсветка в 5-ке есть, даже когда просто наводишь мышкой. Но мне подсветка нужна, не когда просто кликаешь или мышкой наводишь!

У меня этот код поиска написан в Execute when Page Loads

Мне нужно, когда страница загружается и пользователь открывает дерево, чтобы нужный узел уже был подсвечен в зависимости от айдишника из другого item'а

Иначе бы я не извращался так :(
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114064
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZekeОтвечаю вам обоим сразу :)

Подсветка в 5-ке есть, даже когда просто наводишь мышкой. Но мне подсветка нужна, не когда просто кликаешь или мышкой наводишь!

У меня этот код поиска написан в Execute when Page Loads

Мне нужно, когда страница загружается и пользователь открывает дерево, чтобы нужный узел уже был подсвечен в зависимости от айдишника из другого item'а

Иначе бы я не извращался так :(

Встречный вопрос, я просто не видел дерево в пятерке. А дерево открывается и фокусируется (onFocus) на нужном элементе?
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114075
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Сейчас так и происходит, да. У дерева есть атрибут Selected Node Page Item/ Если его указать, то при открытии дерево будет раскрыто именно на том узле, который указан в этом свойстве. Но мне этого недостаточно
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114077
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zekeblkangel,

Сейчас так и происходит, да. У дерева есть атрибут Selected Node Page Item/ Если его указать, то при открытии дерево будет раскрыто именно на том узле, который указан в этом свойстве. Но мне этого недостаточно
попробу поставить туда &ITEMS.
в него в статике пропиши узел. Будет выделять?
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114083
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

чё-то я не понял, что нужно сделать, но что-то мне подсказывает, что работать это не будет :)
В этом свойстве указывается просто какой-нибудь page item и если значение этого page item'а есть в дереве, то дерево встает именно на этот узел
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114610
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,

Так, давайте разбираться. Вы пишите:
apex.jQuery("#P87_PARENT_ID_TREE").find(...)

apex.jQuery("#P87_PARENT_ID_TREE") вернёт jquery объект элемента с id = P87_PARENT_ID_TREE. Т.е. скорее всего айтем, если конечно в статик id региона с деревом у вас не вбито "P87_PARENT_ID_TREE". Далее find будет искать в дочерних элементах то, что вы ему там написали. Сомневаюсь, что у вас узлы дерева лежат под айтемом, который скорее всего input)

Т.е. вам надо начать с нахождения родительского элемента для узлов деревьев. Чем точнее вы его определите - тем скорее всего быстрее отработает find. Поэтому на запущенной странице в нормальном браузере(не ИЕ, хотя и там с некоторых пор есть аналог) щёлкаете правой клавишей по дереву и выбираете нечто вроде Inspect Element/Просмотр кода элемента. Изучаете разметку, ищете какой-нибудь признак за который можно зацепиться - айдишник региона или класс(например у меня есть класс a-TreeView). Далее в find вписываете поиск от выбранного корня. Только определите по разметке каким атрибутом у вас выступает value, у меня например он входит в id узла, а поиск по айдишнику быстрый и поэтому примерно так: $('#'+$('.a-TreeView').attr('id')+'_'+$v('P87_PARENT_ID'))

Был бы у вас пример на apex.oracle.com текст был бы в 4 раза короче. А так приходится гадать какая у вас темка и какое дерево.
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114747
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavyside,

Спасибо вам за ответ! Я попытаюсь исчо раз объяснить ситуацию.

на странице есть тупо дерево, я в самом начале поста описал запрос для него. Возможно, вас смутило слово Parent в нем, но не обращайте на это внимания :)
Соответственно у дерева в свойстве Static Tree ID прописано P87_PARENT_ID_TREE

На этой же странице есть выпадайка page item P87_PARENT_ID. При открытии страницы у этой выпадайки уже значение заполнено чем-то.

И у дерева есть атрибут Selected Node Page Item, в котором прописан этот же page item P87_PARENT_ID. И когда дерево раскрываем, то оно даже встает на тот узел, который указан в этой выпадайке.

И вот я хочу просто, чтобы в дереве подсвечивался узел с тем же id-шником, который указан на момент открытия страницы у выпадайки P87_PARENT_ID

Поле ID из таблицы кладется в поле VALUE дерева (строка ID AS VALUE в запросе). У выпадайки этот же id лежит в $("#P87_PARENT_ID").val()

Я пробовал сначала через метод find искать по тексту, но так как текст в выпадайке может встречаться несколько раз среди наименования узлов дерева, то дерево может подсветить несколько узлов в разных местах, что логично. Поэтому я решил искать через id в дереве, но пока что так и не допер, как это сделать :(

сам код страницы для дерева в браузере выглядит вот так
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<div class="t-Form-inputContainer col col-9"><input type="hidden" name="p_arg_names" value="8516459223467789" /><select  id="P87_PARENT_ID" name="p_t01" class="selectlist" size="1" ><option value=""></option>
<option value="109"> Сторонний банк</option>
<option value="51"> ИКБ "НИКойл" (Азербайджан)</option>
<option value="242"> Copy of Казань</option>
<option value="29"> АРИЖК</option>
<option value="37"> БНП ПАРИБА</option>
<option value="82"> На сопровождении</option>
<option value="14"> ФК УРАЛСИБ</option>
<option value="152">  Дзержинский</option>
<option value="153">  Дорожник</option>
<option value="154">  Евразия</option>



И , допустим, я хочу подсветить узел дерева, у которого, value = 152, например. А value - это и есть id
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39114781
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zeke,
чисто JS вопрос. Сходи к ним в ветку.
...
Рейтинг: 0 / 0
получить ID узла дерева
    #39116557
Zeke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, можно так подсветить выделенный узел:

Код: javascript
1.
$("#P87_PARENT_ID_TREE").treeView("getSelection").css("color","red");


но это при условии, что у дерева в свойстве Selected Node Page Item прописан page item, на который оно встает, когда дерево раскрываешь (в моем случае это P87_PARENT_ID)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / получить ID узла дерева
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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