Заставить Oracle APEX Text Field с автозаполнением иметь результат - PullRequest
0 голосов
/ 13 февраля 2019

В Oracle APEX у меня есть текстовое поле с автозаполнением.Я хочу, чтобы у элемента был результат автозаполнения без использования плагина / надстройки.

Лучшая попытка, которую я сделал:

  1. Текстовое поле с автозаполнением (EMPLOYEE_NAME) Имеет списокзначений, прикрепленных к нему.
  2. Скрытое поле (VALIDATED_FLAG) = FALSE
  3. Скрытое поле (EMPLOYEE_ID)
  4. Динамическое действие, при изменении EMPLOYEE_NAME, установите VALIDATED_FLAG = FALSE.
  5. Динамическое действие, когда пользовательский;результат для EMPLOYEE_NAME, установите EMPLOYEE_ID на основе SQL с вводом EMPLOYEE_NAME.Кроме того, установите VALIDATED_FLAG = TRUE.
  6. Динамическое действие, когда Lose Focus on EMPLOYEE_NAME и VALIDATED_FLAG! = TRUE, очистите EMPLOYEE_NAME

При таком подходе это работает, когда я нажимаю кнопку автозаполнениярезультат, затем вкладка из поля.EMPLOYEE_NAME остается, а поле EMPLOYEE_ID обновляется.

Но это не работает, когда я нажимаю клавишу ВВОД, чтобы выбрать результат автозаполнения, а затем выхожу из поля.Поле EMPLOYEE_ID изменяется, но поле EMPLOYEE_NAME очищается.

1 Ответ

0 голосов
/ 13 февраля 2019

вы можете использовать плагин apex select2, который имеет встроенную функцию автозаполнения, и обязательно отметьте: «Показать дополнительные значения: нет»

https://apex.oracle.com/pls/apex/f?p=64237:20:0:

как правило, я неРекомендуется использовать условие на стороне сервера для изменения измененного пользователем поля, но вместо этого добавить динамическое действие кода «Выполнить PL / SQL», возвращающее флаг.

Текст справки для условий на стороне сервера при динамическом действии гласит: «Выбратьтип условия, который должен быть выполнен для того, чтобы это динамическое действие было активным . "В то время как условия на стороне клиента определяют, действуют ли действия fire .

...