【问题标题】:Primefaces onclick and oncomplete event in a selectBooleanCheckbox在 selectBooleanCheckbox 中的 Primefaces onclick 和 oncomplete 事件
【发布时间】:2020-06-14 19:15:20
【问题描述】:

我有一个 selectBooleanCheckbox 的 primefaces 执行可能延迟的激活过程,我想在从开始(onclick)到 java 进程完成的同时添加进度条或加载图像(未完成)。

一开始我的想法是这样的:

<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 primefaces


【解决方案1】:

仅使用 Javascript 而不是 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>

【讨论】:

  • 在命令按钮和链接上,由于包含 ajax,它需要在它们上面。它让人们感到困惑;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多