分享100%后取消progressBar
来电?
我试过这样做:
public void doJs() {
RequestContext ctx = RequestContext.getCurrentInstance();
context.execute("progress.cancel();");
}
或致电PF('progress').cancel();
,但没有成功。
关注我的progressBar
。
<p:progressBar widgetVar="progress" ajax="true" global="false"
value="#{usarLayoutBean.porcentagem}" labelTemplate="{value}%"
styleClass="animated">
<p:ajax event="complete" listener="#{usarLayoutBean.doJs()}"/>
</p:progressBar>
答案 0 :(得分:0)
以下代码适用于进度条。进度条停在100并且不再调用getProgress()。一旦Integer进度等于100,就会调用onComplete()。
function your_function_name_here($some_params){
return "some results";
}
add_action('init', 'your_function_name_here');
Managed Bean
<h:form>
<p:growl id="growl" />
<p:commandButton value="Start" type="button"
onclick="PF('pbAjax').start();" />
<p:progressBar widgetVar="pbAjax" ajax="true"
value="#{progressBean.progress}" labelTemplate="{value}%"
styleClass="animated" global="false">
<p:ajax event="complete" listener="#{progressBean.onComplete}"
update="growl" />
</p:progressBar>
</h:form>
输出
package com.test;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class ProgressBean {
private Integer progress;
public Integer getProgress() {
System.out.println("getProgress() Old - " + progress);
if (progress == null) {
progress = 0;
} else {
progress = progress + (int) (Math.random() * 35);
if (progress > 100) // Only when progress = 100 does the onComplete() method gets called.
progress = 100;
}
System.out.println("getProgress() New- " + progress);
return progress;
}
public void setProgress(Integer progress) {
System.out.println("setProgress()" + progress);
this.progress = progress;
}
public void onComplete() {
System.out.println("onComplete()");
//FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Progress Completed"));
progress = null;
}
}
JSF 2.2.4,Primefaces 5.3,Tomcat 8
答案 1 :(得分:-1)
context.execute(&#34; progress.cancel();&#34);
因为正确的方法是
context.execute("PF('progress').cancel()");