Select 当用户键入时,Richfaces 4个动态选择选项
我正在使用丰富的面选择组件。 当用户在选择组件中手动键入某些内容时,我需要动态值Select 当用户键入时,Richfaces 4个动态选择选项,select,dynamic,richfaces,Select,Dynamic,Richfaces,我正在使用丰富的面选择组件。 当用户在选择组件中手动键入某些内容时,我需要动态值 <rich:select enableManualInput="true" defaultLabel="start typing for select" value="#{supplierSearchBean.userInput}"> <a4j:ajax event="keyup" execute="@this" listener="#{suppli
<rich:select enableManualInput="true" defaultLabel="start typing for select" value="#{supplierSearchBean.userInput}">
<a4j:ajax event="keyup" execute="@this" listener="#{supplierSearchBean.userInputChange}"/>
<f:selectItems value="#{supplierSearchBean.selectOptions}" />
</rich:select>
在这里,我发现了两个问题
第一:当用户键入值时,setUserINput始终打印空字符串
第二:侦听器方法从未得到调用
有什么帮助吗?问题很可能是用户键入时没有选择的值,而此组件将允许的值限制为指定的选择项。因此,部分输入无效,无法绑定到bean
我认为如果您使用
rich:autocomplete
,您可以获得预期的行为。但是,如果要限制允许的值,也许你可以保持你的丰富:选择并监听selectitem
事件。在richfaces-core-impl-4.0.0.0.Final.jar
文件夹下的richfaces-core-impl-4.0.0.Final\META-INF\resources
文件中覆盖getItems
函数
将推送项目的条件更改为
if(p != -1)
而不是
if(p == 0)
这应该可以解决问题。U要更新服务器上每个键控或从d框中丢失焦点的值…??检查提交部分是否在标记bcz中,然后只有它会提交表单并更新服务器和页面。。是的,它已经在h:form中。tagI发现a4j:ajax与rich:select一起工作,但不会在服务器端上使用udpate值每次按键。我在这里迟到了,但是在(最初为空)列表中的某个内容被选中之前,selectitem的监听是否不会触发?我们是否可以利用EL2.2将当前键入的字符串传递到a4j:ajax侦听器(可能在listkeypress事件上)?请注意,在我回到我的代码库之前,这是一个推测。嗨@mabi,自从我发布这个答案以来,我还没有与JSF和RF合作过,所以我将无法为您提供太多帮助。我认为最简单的解决方案仍然是使用rich:autocomplete
,它不限制用户输入,因此您可以在keyup上将其绑定到bean。问题是rich:autocomplete
只获取字符串
值,因为它是一个纯
字段-如果您不能使用转换器的话(例如,因为所显示的字符串不能唯一地标识对象)您会遇到一些可怕的问题,比如在隐藏字段中设置对象id之类的问题。
if(p == 0)