java - 添加/删除项目时的 Richfaces pickList ajax 事件

标签 java ajax jsf jsf-2 richfaces

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

开发者指南根本没有提到这一点,但我发现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直到事件被触发后才会填充新项目。这意味着我无法使用它来重新呈现按钮,因为在添加第一个元素后列表将为空,并且在添加第二个元素后列表大小为一。

是否有一个 ajax 事件可以监听在更新目标列表 ( selectedItems ) 后触发的事件? (并且某个地方一定有该组件支持的 ajax 事件的完整列表,对吧?)

我还按照建议尝试了更改事件 here ,但它没有被解雇。

最佳答案

刚刚再次尝试更改事件,突然就起作用了。可能是我第一次尝试时的拼写错误。这是要走的路:

<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

关于java - 添加/删除项目时的 Richfaces pickList ajax 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17026688/

相关文章:

java - 使用 Collectors.toMap 返回一个 LinkedHashMap

java - 为什么我们要关闭 java.util.Scanner 变量?

java - 从 Java NIO socketchannel 读取字节直到到达标记

php - 当日期选择器的值发生变化时调用函数

javascript - Jquery 函数未触发 - onunload

javascript - 在 JSF 中提交表单后 MaskInput 不起作用

java - 如何从 ManagedBean 获取 xhtml jsf 页面上的 session 信息?

java - Hibernate JSF MySql,丢失数据库连接

java - 使用递归计算 10 的负数次方

javascript ajax变量问题