我有一个Java EE JSF/Primeface应用程序,其中包含用于添加/编辑实体的入口表单。 我们称之为Product
该表单上有一个字段来指定Salesperson
,这实际上是销售人员的Employee Number
。 但大多数数据输入用户并不知道销售人员的员工编号。
我正在寻找一种方法来单击打开弹出窗口,用户可以在其中输入一两个关键字,找到正确的 B.Smith、J.Doe 等......,单击他们的名字并让适当的员工编号弹出到父表单上的文本框中。或者以某种方式在父窗体中内联执行此操作,其中用户开始键入任何关键字,ajax 查询员工数据库,选择适当的销售人员,员工编号替换在输入文本框中键入的关键字。
一个好处是(处于不可编辑状态)在带有员工编号的文本输入框旁边,销售人员的全名对应于员工编号。
或者这些的某种变体。
我使用一些黑客组合在一起的javascript在JSP应用程序中工作,但是我在将该功能移植到JSF/Primefaces时遇到了麻烦,并且想知道此功能是否已经在这两种技术中可用。 我一直在寻找解决方案一段时间。
如果我继续使用我的旧 javascript,最大的问题之一是知道父表单文本框 ID 以了解在哪里弹出值。 使用 JSF 表单,我得到了类似j_idt28:j_idt29
你不需要弄乱Javascript,所以你不需要知道生成的id。
由于您使用PrimeFaces,因此您可能需要查看自动完成组件。
除此之外,您可以随时使用 f:ajax 标签来响应用户输入并根据它更新字段。