Jsf 2 Primefaces SelectOne菜单在重新打开时不会保留对所选项目的焦点
Primefaces p:selectOneMenu组件似乎没有将焦点转移到以前选择的项目。例如,如果我有一个国家菜单,设置如下Jsf 2 Primefaces SelectOne菜单在重新打开时不会保留对所选项目的焦点,jsf-2,primefaces,selectonemenu,Jsf 2,Primefaces,Selectonemenu,Primefaces p:selectOneMenu组件似乎没有将焦点转移到以前选择的项目。例如,如果我有一个国家菜单,设置如下 <p:selectOneMenu id="countryMenu" value="#{myBean.selectedCountry}"> <f:selectItem value="#{null}" itemLabel="Please select a Country..."/> <f:selectI
<p:selectOneMenu id="countryMenu" value="#{myBean.selectedCountry}">
<f:selectItem value="#{null}" itemLabel="Please select a Country..."/>
<f:selectItems value="#{myBean.countries}" var="country"
itemValue="#{country.code}"
itemLabel="#{country.name}"/>
<p:ajax update="anotherComponent"/>
</p:selectOneMenu>
我从列表中选择一个国家,然后再次单击菜单,它会从一开始显示国家列表。它确实保留了选定的国家/地区-它只是不向下滚动并聚焦于它
标准的JSF h:SelectOne菜单显示预期的行为-打开时显示先前选择的国家/地区
这有什么诀窍吗?还是一个bug
例如,当菜单有焦点但没有打开菜单时,它如何响应键盘输入(上/下按),这有点令人沮丧
我正在使用:
Primefaces 3.1
玻璃鱼3.1.1
NetBeans 7.1
这不是虫子。您只需要在Country类中重写equalsToObject o和CompareTObject o方法
完成后,它会正常工作。这不是一个bug。您只需要在Country类中重写equalsToObject o和CompareTObject o方法
完成后,它会正常工作。如果您现在更新到Primefaces 3.4当前版本,您仍然会有类似的行为,这是不期望的 事件如果第一个项目的noSelectionOption=true,则您会得到相同的行为,这似乎是审查中的一个bug,并会报告和修改。还有一个关于它的论坛 但是您可以尝试使用itemDisabled属性,因为它为我解决了这个问题:
<p:selectOneMenu id="hero" value="#{bean.hero}">
<f:selectItem itemLabel="Select..." itemDisabled="true" />
<f:selectItems var="item" value="#{bean.heroes}" itemLabel="#{item.name}" />
</p:selectOneMenu>
我希望这会有所帮助。如果您现在更新到Primefaces 3.4当前版本,您仍然会有类似的行为,这是不可预料的 事件如果第一个项目的noSelectionOption=true,则您会得到相同的行为,这似乎是审查中的一个bug,并会报告和修改。还有一个关于它的论坛 但是您可以尝试使用itemDisabled属性,因为它为我解决了这个问题:
<p:selectOneMenu id="hero" value="#{bean.hero}">
<f:selectItem itemLabel="Select..." itemDisabled="true" />
<f:selectItems var="item" value="#{bean.heroes}" itemLabel="#{item.name}" />
</p:selectOneMenu>
我希望它能有所帮助。好的,这个问题似乎已经解决了 我使用不同版本的Primefaces运行了一些测试,结果如下: 3.1-不起作用 3.2-不起作用 3.3-未工作之前选择的值短暂闪烁,然后显示第一个菜单项 3.4-按预期工作
注意:从3.3升级到3.4时,我确实需要清除Chrome和Firefox中的浏览器缓存。在我这么做之前,这些项目根本无法选择。好的,这似乎已经修复 我使用不同版本的Primefaces运行了一些测试,结果如下: 3.1-不起作用 3.2-不起作用 3.3-未工作之前选择的值短暂闪烁,然后显示第一个菜单项 3.4-按预期工作
注意:从3.3升级到3.4时,我确实需要清除Chrome和Firefox中的浏览器缓存。在我这么做之前,这些项目根本无法选择。好吧,这显然是一个错误,至少PrimeFaces中缺少功能,您可能已经意识到了这一点。除了建议您报告那边的错误,或者重写/覆盖渲染器和/或JavaScripts之外,我们在这里为您做不了什么。仅供参考,您可以在此处搜索和/或报告Primefaces的问题:@maple_shaft是的,我在发布此问题之前查看过,但目前没有与此相关的问题。我只是想在发布一个问题之前确认它确实是一个bug。好吧,3.4版本中仍然存在,所以我提出了一个问题,这显然是一个bug,至少PrimeFaces中缺少功能,你可能也已经意识到了这一点。除了建议您报告那边的错误,或者重写/覆盖渲染器和/或JavaScripts之外,我们在这里为您做不了什么。仅供参考,您可以在此处搜索和/或报告Primefaces的问题:@maple_shaft是的,我在发布此问题之前查看过,但目前没有与此相关的问题。我只是想在发布一个问题之前确认它确实是一个bug。好吧,3.4版本中仍然存在,所以我提出了一个问题,这并不能解释为什么它在h:selectOneMenu中工作。比较器是不必要的,它不会被使用。equalsTo不存在,我假设你的意思是equals。但是如果这一点不存在或者实现得不好,h:selectOneMenu也会失败。在Primefaces上可以看到完全相同的问题,例如。总有一天我会报告的。哦,还有BalusC——谢谢你不知疲倦的回答,我找到的几乎每一篇有用的JSF文章都有你的名字!这并不能解释为什么它在h:selectOneMenu中工作。比较器是不必要的,它不会被使用。equalsTo不存在,我假设你的意思是equals。但是如果这一点不存在或者实现得不好,h:selectOneMenu也会失败。在Primefaces上可以看到完全相同的问题,例如。总有一天我会报告的。哦,还有巴卢斯克-谢谢你不知疲倦的回答,就在附近
我发现的每一篇有用的JSF文章都有你的名字!这些问题似乎不相关,itemDisabled也没有什么区别。我提出了一个问题,希望它能很快得到解决:这些问题似乎不相关,而itemDisabled也没有什么区别。我提出了一个问题,希望能尽快解决: