p: autoComplete не сохраняет выбранное значение в компоненте поддержки - PullRequest
0 голосов
/ 21 октября 2019

У меня довольно сложное поле автозаполнения в моем интерфейсе. При щелчке в текстовом поле отображаются последние несколько введенных значений, из которых можно выбрать. После ввода трех букв поиск по автозаполнению начинает поиск подходящих записей, также используется задержка запроса (устанавливается примерно на полсекунды). Обычно все отлично работает. Но когда вы попадаете в точку между задержкой и запросом, фактически возвращающим предложения, и выбираете одну из последних записей, которые были показаны ранее, компонент поддержки получает пустой выбор. Если вы будете ждать, пока полный метод вернет значение, и выберите одно из них, оно будет работать, и когда вы выбираете одно из ранее введенных значений, показанных при нажатии на поле, оно также работает нормально ... этот момент между задержкой и возвратом метода автозаполнения, когда он терпит неудачу.

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

<p:autoComplete value="#{receiverBean.selectedReceiver}"
       id="receiverAutoComplete" minQueryLength="3"
       completeMethod="#{receiverBean.completeSearch}" multiple="true"
       var="user" forceSelection="false"
       widgetVar="receiverAutocomplete" itemValue="#{user}"
       groupBy="#{msg['label_searchHits_'.concat(user.receiverSearchType.name())]}"
       styleClass="autocomplete" queryDelay="550"
       converter="#{receiverAutoCompleteConverter}"
       itemLabel="#{receiverBean.determineLabelName(user)}"
       onclick="PF('receiverAutocomplete').search('')">
...