Строки автозаполнения простых лиц, появляющиеся выше <p: autoComplete - PullRequest
1 голос
/ 15 марта 2012

У меня есть простые лица autocomplete, который выбирает значения из базы данных. Когда я набираю символы, я мог видеть строки в autocomplete, которые иногда появляются выше <p:autoComplete, обычно оно должно быть ниже <p:autoComplete.

См. Скриншот ниже для справки. Как я могу решить эту проблему?

Primesfaces версия 3.1

код JSF

<p:autoComplete value="#{bean.selectedEmployees}"  
 completeMethod="#{bean.employeeList}"  
        var="vs" itemLabel="#{vs.empName}" itemValue="#{vs.empName}"  multiple="true"> 

        <p:column style="width:100%;text-align:center">  
            #{vs.empName} - #{vs.empNumber}  
        </p:column>  
    </p:autoComplete> 

Привет

enter image description here

Обновление 1

ManagedBean

public List<Schedules> employeeList(String query) {

for(Schedules vs : employees) {  
                if(vs.getEmpName().toLowerCase().startsWith(query.toLowerCase()))  
                    suggestions.add(vs);    
            }
return suggestions;

и в конструкторе

employees = MyDAO.loadEmployees();

Ответы [ 3 ]

2 голосов
/ 09 мая 2012

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

0 голосов
/ 09 марта 2014

попробуйте установить для свойства maxResults значение 10 или

пример:

<p:autoComplete value="#{backingBean.value}" maxResults="10" />

это решит вашу проблему.

0 голосов
/ 15 марта 2012

Сообщалось, что это ошибка и исправлено в 3.1 Автозаполнение смещено над вводом, когда начальные результаты ограничены при вводе

Попробуйте очистить кэш ...

Обновление 1

Чтобы быть в безопасности: убедитесь, что сотрудники никогда не равны нулю, и перенесите их инициацию в метод @PostConstruct ...

...