我正在使用richfaces 4.1 rich:picklist,需要在添加或删除targetList中的项目时呈现a4j:outputpanel。它会在选择Source / Target List元素时立即呈现outputpanel,但如果直接单击AddAll或RemoveAll按钮,则第一次单击时不会渲染输出面板,而是在屏幕内外的任何位置进行第二次单击。
这是我的代码:
<rich:pickList value="#{myBean.selectedRegions}"
valueChangeListener="#{myBean.regionChangeListener}"
switchByClick="true" immediate="true">
<a4j:ajax event="additems" execute="@this" render="countryPanel" />
<a4j:ajax event="removeitems" execute="@this" render="countryPanel" />
<a4j:ajax event="sourceblur" execute="@this" render="countryPanel"/>
<a4j:ajax event="targetblur" execute="@this" render="countryPanel"/>
<a4j:ajax event="change" execute="@this" render="countryPanel" />
<f:selectItems value="#{myBean.regions}" var="region"
itemValue="#{region}" itemLabel="#{region.regionDesc}" />
<f:converter converterId="RegionConverter" />
</rich:pickList>
<a4j:outputPanel id="countryPanel" >
答案 0 :(得分:1)
升级到最新的RichFaces版本应该有所帮助。此外,它还允许简化代码,您需要仅指定change
事件处理程序,因为已修复以下问题:https://issues.jboss.org/browse/RF-12360