Primefaces自动完成行出现在上面

时间:2012-03-14 20:53:06

标签: java jsf-2 primefaces

我有一个从数据库中获取值的primefaces 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 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我相信原因是当你有一个大的建议列表时,如果向下显示,则表面看起来它不适合浏览器边界,所以它只是盲目地向下翻转下拉列表。 (这可能会让事情变得更糟)尝试添加scrollHeight以限制下拉长度,虽然我听说scrollHeight也有自己的问题

答案 1 :(得分:0)

它被报告为错误并在3.1 Autocomplete is displaced above input when initial results are restricted while typing

中修复

尝试清理缓存...

更新1

为了安全起见: 确保员工永远不为空,并将其init移动到@PostConstruct方法......

答案 2 :(得分:0)

尝试将maxResults属性设置为10或

示例:

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

这将解决您的问题。