Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Детальная форма не синхронизируется с деревом ADF на основе одного объекта рекурсивного представления

Автор вопроса: Taher ElhossinОтветов: 2

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

Любая помощь будет высоко оценена.

oracle-adf

Ответы

Ответ 1 · Florin Marcus

В привязке дерева (файл привязок adf) вы должны установить атрибут "Целевой источник данных", чтобы он указывал на ваш итератор:

http://www.oracle.com/technetwork/developer-tools/adf/learnmore/50-synchromize-form-treeselection-169192.pdf

https://technology.amis.nl/2008/09/23/nice-little-feature-in-adf-11g-target-data-source-attribute-on-tree-binding-helps-synchronize-page-with-tree-node-selection/

Ответ 2 · Ali Honarmand

У меня тот же сценарий, и я решил его с помощью вторичного экземпляра того же ВО и построил на нем форму. как бы то ни было, я добавил некоторый код в прослушиватель выбора дерева, чтобы выполнить синхронизацию. Обращение к газете № 50 мне тоже очень помогло.

        Utilities.invokeEL("#{bindings.PlnFormTitle.treeModel.makeCurrent}", new Class[] { SelectionEvent.class },
                       new Object[] { selectionEvent });

    RowKeySet addedSet = selectionEvent.getAddedSet();
    Iterator it = addedSet.iterator();
    List<Key> keyList = (List<Key>) it.next();
    Key k = keyList.get(keyList.size() - 1);

    OperationBinding setCurrentRowWithKey = commonBindingOperation.getOperatioBinding("setCurrentRowWithKey");
    setCurrentRowWithKey.getParamsMap().put("rowKey", k.toStringFormat(true));

    setCurrentRowWithKey.execute();

этот код я использовал для синхронизации.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы