Как обновить атрибут Primefaces?
У меня есть <p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
В scannerStatus у меня есть:private boolean disabled;
// плюс геттеры и сеттеры
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
Проблема в том, что disabled
атрибут commandButton не изменяется при this.setDisabled(true)
линия от activate
метод называется.
Мне нужно несколько секунд disabled
атрибут из commandButton должен быть true
,
disabled
свойство устанавливается обратно в ложь, а затем disabled
атрибут из commandButton обновлен. Таким образом, обновление в commandButton происходит после завершения функции.
Как я могу обновить атрибут commandButton, когда this.setDisabled(true)
в методе активировать?
Я пытался использоватьRequestContext.getCurrentInstance().update("button-id");
после this.setDisabled
но это не работает
1 ответ
Не проверено, но что-то вроде этого должно сделать это:
<p:commandButton
actionListener="#{scannerStatus.activate}"
id="button-id"
onstart="document.getElementById('button-id').disabled = true;"
oncomplete="document.getElementById('button-id').disabled = false;" />