我有一个<p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
在scannerStatus中我有:private boolean disabled;
//加getter和setter
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
问题是当调用activate
方法的this.setDisabled(true)
行时,commandButton的disabled
属性不改变。
我需要一些秒的disabled
属性从commandButton是true
。
将disabled
属性设置回false,然后更新commandButton中的disabled
属性。所以在commandButton中的更新发生在函数结束之后。
当方法中的this.setDisabled(true)
激活时,我如何更新命令按钮的属性?
我尝试使用RequestContext.getCurrentInstance().update("button-id");
在this.setDisabled
之后,但它不工作
没有经过测试,但是像这样的东西应该可以做到:
<p:commandButton
actionListener="#{scannerStatus.activate}"
id="button-id"
onstart="document.getElementById('button-id').disabled = true;"
oncomplete="document.getElementById('button-id').disabled = false;" />