2012-03-14 58 views
1

我有primefaces autocomplete這是從數據庫中獲取值。 當我輸入字符時,我可以看到autocomplete中的行有時會出現在 的上面<p:autoComplete,它應該正常顯示在<p:autoComplete的下面。Primefaces上面出現的自動完成行<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(); 

回答

2

我有同樣的問題。我相信原因是當你有一個大的建議列表時,primefaces如果向下顯示,它看起來不適合瀏覽器邊界,所以它只是盲目向上翻轉下拉菜單。 (這可能使情況變得更糟)嘗試添加scrollHeight屬性限制下拉長度雖然聽說scrollHeight屬性也有其自身的問題

+0

您可以告訴我們scrollHeight有什麼問題嗎? – 2013-06-07 05:28:32

0

據報道爲錯誤,並固定在3.1 Autocomplete is displaced above input when initial results are restricted while typing

嘗試清潔您的緩存...

更新1

爲了安全起見: 確保員工永遠不爲空,並將其init初始化爲@PostConstruct方法...

+0

我清理了我的緩存,仍然存在問題。重要的是,我注意到這並非所有情況,只有少數情況下我輸入moh這樣的字符和數據庫結果顯示600在我的bean中,而在jsf中,它只顯示一行,並且比截圖中的輸入字段更高。 – user75ponic 2012-03-15 06:58:04

+0

你看到瀏覽器(firebug)的控制檯日誌中有什麼嗎? – Daniel 2012-03-15 07:12:07

+0

我可以在螢火蟲控制檯中看到記錄,但在自動完成中沒有,只有一個記錄顯示在輸入欄上。在螢火蟲控制檯沒有錯誤。使用較小的數據集的自動完成呈現正確的 – user75ponic 2012-03-15 07:21:09

0

嘗試設置maxResults屬性爲10或

例如:

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

這將解決你的問題。