在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
也为空。
任何更新? / 解决方案?
答案 0 :(得分:1)
根据Primefaces 5.1用户指南第29页,我引用:
下拉模式
启用下拉模式时,旁边会显示一个下拉按钮 在输入字段中,单击此按钮将执行空搜索 查询,一个常规的completeMethod实现应该加载所有 可用的项目作为回应。
答案 1 :(得分: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" />