selectBooleanCheckbox 中的 Primefaces onclick 和 oncomplete 事件

Primefaces onclick and oncomplete event in a selectBooleanCheckbox

我有一个 selectBooleanCheckbox primefaces,它执行一个可以延迟的激活过程,我想在此期间添加一个进度条或加载图像,从开始(点击)到什么时候java 过程完成(oncomplete)。

我最初的想法是这样的:

<p:selectBooleanCheckbox value="#{name}" id="check" onclick="PF('progressBar').show()" oncomplete="PF('progressBar').hide(),>
    <p:ajax update=":form,:progressBar"
            listener="#{bean.activate}"                                 
            process="@form" />                                                                  
</p:selectBooleanCheckbox>

但我看到 p: selectBooleanCheckbox 没有 onclickoncomplete 事件,就像它们拥有的其他 primefaces 组件一样,只有onchange 事件,所以它对我不起作用。

对于这种情况,什么是有效的选择? 我想到的替代方案是 运行 来自我的 java bean 的 primefaces 脚本,就在这个过程之前和之后。 我放弃的另一个选项是 JSF selectBooleanCheckbox,因为它确实具有 onclick 属性但没有 oncomplete 属性

一个更好的解决方案,只使用 Java 脚本而不是 Java 使用 JSF AJAX 方式。

这是 OP 的初衷,但没有意识到您需要将 "on" 方法放在 AJAX 调用上而不是组件本身。

<p:selectBooleanCheckbox value="#{name}" id="check">
    <p:ajax update=":form,:progressBar"
            listener="#{bean.activate}"                                 
            process="@form" 
            onstart="PF('progressBar').show()"
            oncomplete="PF('progressBar').hide()" />                                                                  
</p:selectBooleanCheckbox>