2013-12-10 2 views
0

У меня возникла проблема с selectOneChoice внутри TreeTable в режиме clickToEdit. При прокрутке вниз и возврате значение комбо сфокусированного ряда очищается. Чтобы воспроизвести проблему, просто перейдите к АПД демо: clickToEditTreeTableOracle-adf selectOneChoice reset on treeTable scrolling

  1. Развернуть все
  2. Выберите первую строку
  3. Измените значение в Col2 к HeadPhone
  4. Выделив все еще на первом , прокрутите вниз до появления сообщения Fetching Data
  5. Прокрутите страницу назад до первой строки
  6. Значение Col2 изменяется на мышь

Как я могу избежать этого? В моем приложении я заметил, что изменение значения слушатель обжигают в первый раз при изменении значения, и второй раз при прокрутке TreeTable, установив его на нуль

Эта проблема возникает только с TreeTable в EditingMode clickToEdit. Стандартная таблица работает нормально.

My jdev is 11.1.2.1.0.

Thx заранее.

+0

Вы пробовали это на jdev 11.1.2.4? Может быть ошибка. – Nagh

+0

Я пробовал демонстрационную онлайн-версию, которая должна быть разработана с последней версией jdev. – acasolla

ответ

0

Поскольку вы можете воспроизвести эту проблему в демо ADF самостоятельно, это либо ошибка ADF, либо ограничение.

0

Я думаю, что это своего рода ошибка. Вы можете попробовать подать запрос на обслуживание.
Кажется, что, поскольку вы не совершаете свои изменения (потому что вы все еще остаетесь в этой строке). На другой выбор ваши изменения не сохраняются, а при повторном получении вы получаете старые значения.
Что касается решения этой проблемы:

  1. Если дерево не слишком велико, вы можете установить итератор RangeSize к -1, чтобы извлечь все строки сразу, чтобы избежать более строк выборки. Однако, если у вас много строк, у вас будут проблемы с производительностью.
  2. Вы можете попробовать установить AutoSubmit свойства в этом поле для истинного, так что сохранят ваши данные (и, надеюсь, нагрузка) на Comback (даже если он этого не сделает, вы можете сделать это в вашем компоненте) , Возможно, вам также понадобится отправить clientListener, чтобы отправить данные, когда ваш контроль теряет фокус.
  3. Не используйте clickToEdit для этого элемента управления или вызвать его функцию (не представить - без изменений) :)
+0

Thx Nagh, я попробую открыть билет. – acasolla

+0

Для ваших обходных решений: 1. Мое дерево состоит из 60 столбцов с 30 редактируемыми полями и может иметь размер> 500, поэтому мне нужен размер выборки <100. 2. Автосайт уже установлен в true. 3. Дерево слишком велико, мне это действительно нужно :). – acasolla

+0

Обратите внимание на то, что autosubmit может быть недостаточно, вам нужно обработать событие onblur, чтобы принудительно отправить событие, когда пользователь покидает поле. – Nagh

0

Поскольку я не могу ждать исправления, я нашел обходной путь к этой проблеме. Значение устанавливается равным null (или false для флажков), когда элемент визуализируется во второй раз при прокрутке назад, потому что вызывается свойство setter компонента и (если присутствует) изменение значения selectOneChoice. Итак, я установил clientListener для события valueChange, которое в отличие от valueChangeListener запускается правильно, и фальшивое свойство как значение.