1

将项目添加到 Richfaces (4.3.1.Final) 时是否会触发 ajax 事件pickList?我需要根据是否选择了任何项目来启用禁用按钮。

开发人员指南根本没有提到这一点,但我在谷歌搜索时发现了这一点。使用建议的解决方案,我使用了以下 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直到事件被触发后才会填充新项目。这意味着我不能使用它来重新渲染按钮,因为在添加第一个项目后列表将为空,并且在添加第二个元素后大小为一个。

更新目标列表 ( ) 后是否有 ajax 事件来监听该事件selectedItems?(并且在某处必须有该组件支持的 ajax 事件的完整列表,对吗?

我也按照这里的建议尝试了更改事件,但它没有被触发。

4

2 回答 2

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

于 2013-06-11T08:43:22.607 回答
0

尝试这个:

<rich:pickList 
        var="item"
        value="#{someBean.selectedItems}">
    <a4j:ajax event="transfer" render="somePanelGroupWithTheButton" />
</rich:pickList>
于 2015-04-22T19:19:13.480 回答