将项目添加到richfaces(4.3.1.Final)pickList
时是否会触发ajax事件?我需要启用禁用按钮,具体取决于是否已选择任何项目。
开发人员指南根本没有提到这一点,但我在谷歌搜索时找到了this。使用建议的解决方案,我使用了以下ajax事件:
<rich:pickList
var="item"
value="#{someBean.selectedItems}">
<a4j:ajax event="sourceblur" render="somePanelGroupWithTheButton" />
<a4j:ajax event="targetblur" render="somePanelGroupWithTheButton" />
</rich:pickList>
这很有效。但是,每次源或目标列表模糊时都会触发事件,这对我的需求来说太频繁了。
我还尝试了<a4j:ajax event="additems" />
和<a4j:ajax event="removeitems" />
。在这种情况下,事件仅在删除或添加项目时触发,完全符合我的要求。但是,在事件被触发之前,selectedItems
不会填充新项目。这意味着我无法使用它来重新渲染按钮,因为在添加第一个项目后列表将为空,并且在添加第二个元素后列表大小为一。
在目标列表(selectedItems
)更新后,是否有ajax事件可以侦听该触发器? (并且必须有一个完整的此组件支持的ajax事件列表,对吗?)
我也按照建议here尝试了更改事件,但未触发。
答案 0 :(得分:0)
刚刚再次尝试了更改事件,突然之间就有效了。我第一次尝试时可能是一个错字。这是要走的路:
<rich:pickList
var="item"
value="#{someBean.selectedItems}">
<a4j:ajax event="change" render="somePanelGroupWithTheButton" />
</rich:pickList>
触发事件并重新呈现somePanelGroupWithTheButton
时,someBean.selectedItems
已填充正确的项目。
这是4.3.0.M2中解决的缺陷:https://issues.jboss.org/browse/RF-12360。
pickList
支持的活动可在此处找到:http://docs.jboss.org/richfaces/4.3.X/4.3.0.CR1/vdldoc/rich/pickList.html
答案 1 :(得分:0)
试试这个:
<rich:pickList
var="item"
value="#{someBean.selectedItems}">
<a4j:ajax event="transfer" render="somePanelGroupWithTheButton" />
</rich:pickList>