【问题标题】:Primefaces Autocomplete with barcode readerPrimefaces 带有条码阅读器的自动完成功能
【发布时间】:2014-07-09 21:59:38
【问题描述】:

我想在 JSF/JPA/Primefaces 应用程序中搜索带有名称、代码或条形码的项目。我用过它在使用名称或代码时效果很好。当我们手动输入条形码时,它也可以正常工作。但是当我在输入回车时使用条形码阅读器时,项目没有被选中。如何在 primefaces 自动完成中使用条形码阅读器?

<p:autoComplete accesskey="i"   forceSelection="true"  id="acStock" 
                                                        value="#{pharmacySaleController.stock}" 
                                                        converter="stockCon" 
                                                        completeMethod="#{pharmacySaleController.completeAvailableStocks}" 
                                                        var="i" itemLabel="#{i.itemBatch.item.name}" itemValue="#{i}" 
                                                        style="width: 50px!important;">
                                            <p:column headerText="Item">
                                                <h:outputLabel value="#{i.itemBatch.item.name}" ></h:outputLabel>
                                            </p:column>
                                            <p:column headerText="Code">
                                                <h:outputLabel value="#{i.itemBatch.item.code}" ></h:outputLabel>
                                            </p:column>
                                            <p:column headerText="Rate">
                                                <h:outputLabel value="#{i.itemBatch.retailsaleRate}" >
                                                    <f:convertNumber pattern="#,##0.00" ></f:convertNumber>
                                                </h:outputLabel>
                                            </p:column>
                                            <p:column headerText="Stocks">
                                                <h:outputLabel value="#{i.stock}" >
                                                    <f:convertNumber pattern="#,###" ></f:convertNumber>
                                                </h:outputLabel>
                                            </p:column>
                                            <p:column headerText="Expiary">
                                                <h:outputLabel value="#{i.itemBatch.dateOfExpire}" >
                                                    <f:convertDateTime pattern="dd MMMM yyyy" ></f:convertDateTime>
                                                </h:outputLabel>
                                            </p:column>
                                            <p:ajax event="focus" process="acStock :#{p:component('cmbPs')}"  ></p:ajax>
                                            <p:ajax event="itemSelect"   listener="#{pharmacySaleController.handleSelect}"  update="txtQty txtRate focusQty" ></p:ajax>
                                        </p:autoComplete>

【问题讨论】:

  • 据我了解,字符串是从条形码扫描仪正确“输入”的吗?
  • 是的。读者正确输入数字并在末尾添加回车。如果我们手动输入数字就可以了。
  • 您需要实现一个更改事件处理程序:&lt;p:ajax event="change" listener="#{pharmacySaleController.handleChange}" update="txtQty txtRate focusQty"/&gt;,并且在方法中您需要通过在组件中获得的值来选择一个项目。

标签: jsf primefaces


【解决方案1】:

Primefaces Developers 发布了他们将从 5.1 版本开始添加一个,这样就不需要自己生成条形码了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多