代码之家  ›  专栏  ›  技术社区  ›  Shahid Ghafoor

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

  •  1
  • Shahid Ghafoor  · 技术社区  · 9 年前

    在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 也是空的。

    任何 使现代化 ? / 解决方案 ?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Fritz    9 年前

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

    下拉模式

    什么时候 下拉模式 启用时,将在旁边显示一个下拉按钮 在输入字段中,单击此按钮将使用空 查询,常规completeMethod实现应加载所有 可用项目作为响应。

        2
  •  1
  •   Shahid Ghafoor    9 年前

    思考了很多之后,我就这样解决了

    解决方案:

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