使用下拉菜单填充 primefaces 自动完成

populate primefaces autocomplete with dropdown

在 JSF 中使用 primeface

<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 也为空。

任何更新? /解决方案?

根据 Primefaces 5.1 用户指南第 29 页,我引用:

Dropdown Mode

When dropdown mode is enabled, a dropdown button is displayed next to the input field, clicking this button will do a search with an empty query, a regular completeMethod implementation should load all available items as a response.

想了很多,就这样解决了

解法:

<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" />