我有一个从数据库中获取值的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>
此致
更新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();
答案 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" />
这将解决您的问题。