2015-09-04 102 views
1

在JSF使用primeface填入primefaces自動完成與下拉

<p:autoComplete minQueryLength="5" value="#{itemManagementMB.itemManagementLazy.code}" forceSelection="true" autocomplete="false" 
    completeMethod="#{itemManagementMB.autoCompleteUsindCode}" dropdown="true"> 
    <p:ajax event="itemSelect" listener="#{itemManagementMB.handleSelect}" /> 
</p:autoComplete> 

當我進入5個關鍵詞是工作的罰款。但我希望以這種方式實現,如果用戶輸入4個單詞並按下拉菜單,它會根據4個關鍵字填充自動填充。

有一件事是阻止我,當我點擊下拉,autoCompleteUsindCode(String query)方法採取空字符串和itemManagementMB.itemManagementLazy.code也是空的。

任何更新?/解決方案

+0

可以還張貼的內容你autoCompleteUsindCode()方法? – Fritz

+0

從我在代碼中可以看到的forceSelection =「true」屬性是什麼導致你的autoCompleteUsindCode方法獲得一個空字符串。爲什麼不把minQueryLength設置爲4並讓completeMethod自己觸發? – Fritz

+0

@Fritz我刪除'forceSelection =「true」'屬性。同樣的行爲。 '爲什麼不把minQueryLength設置爲4並讓completeMethod自己觸發?'這是客戶端需求。 –

回答

1

思索了一番之後,我以這種方式解決

解決方案:

<p:autoComplete id="anum" minQueryLength="5" value="#{transferInMB.itemManagementLazy.code}" forceSelection="true" 
    completeMethod="#{transferInMB.autoCompleteUsingCode}" dropdown="true"> 
    <p:ajax event="itemSelect" listener="#{transferInMB.handleSelect}" /> 
    <p:ajax event="keyup" /> 
</p:autoComplete> 

我只是添加以下

<p:ajax event="keyup" /> 
+0

那麼在你放置keyup ajax事件後基本上發生了什麼?你可以在你的支持bean中獲得4個關鍵字嗎? – Fritz

+0

@Fritz'value =「#{transferInMB.itemManagementLazy.code}」' –

1

作爲每Primefaces 5.1用戶指南第29頁,我引用:

下拉模式

下拉模式被啓用,一個下拉按鈕旁邊顯示 輸入字段,點擊這個按鈕將執行一個空的 查詢,一個常規的completeMethod實現應該加載所有的 可用項作爲響應。