2012-05-10 33 views
2

我用的是相同的查詢第一和第二再寄一次看到完整的方法被調用的第一次,但它計算的結果後,他們不會在UI發送。有沒有人遇到過這個問題?你對如何解決這個問題有任何想法嗎?Primefaces自動完成不工作的第一次

<p:autoComplete id="filterByMachine" value="#{notificationListViewLazyModel.selectedMachine}" scrollHeight="500" 
           completeMethod="#{notificationListViewLazyModel.complete}" converter="#{notificationListViewLazyModel.converter}" 
           var="p" itemLabel="#{p.platformName} #{p.serial} #{p.sitename}" 
           itemValue="#{p}" forceSelection="true" size="48" > 
+0

你完成方法返回一個列表?你調試過,看到列表不是空的嗎? –

+0

是的,它確實返回一個列表,並且我看到列表不是空的 – Viocartman

+0

您可以放置​​表單的代碼嗎? –

回答

0

您的項目值是一個對象,因此,你需要實現一個轉換器(implement converter)。

的項目值是項目值,該值被傳遞到服務器的請求參數,但該值的值綁定表達式指向一個SelectItem實例(ref)。

+0

我有一個轉換器實現,但仍然爲什麼它第二次工作?我用螢火蟲進行了檢查,並且從後端得到的2個響應是相同的,或者幾乎是因爲只有第二次我看到建議列表。 – Viocartman

1

我不能確定這個問題是相關的,但這同樣的情況只是發生在我們身上。在將問題追溯到數據庫級別後,我們找出發生了什麼事情。

不知何故自動完成組件增加了兩個領先的白色空間,以查詢字符串的第一次用戶輸入文本。

修剪的查詢字符串解決了這個問題對我們來說。

+0

請將您發現的PrimeFaces版本添加到答案中 – Kukeltje

-1

我也有同樣的問題。當我點擊字段它不工作,但當我選項卡到字段,並開始寫一些東西,它會自動完成。

有一個空格字符。

當我點擊它仍然領域。但是當我選中字段時,它是自動選擇答案,而寫入選定區域取代了我的寫作。所以它的工作;)