У меня есть <p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
Как обновить атрибут perffaces?
В scannerStatus у меня есть:
private boolean disabled;
// плюс geters и сеттеры
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
Проблема заключается в том, что атрибут CommandButton disabled
не меняется при this.setDisabled(true)
линии от activate
метода называется.
Мне нужно несколько секунд атрибут disabled
из commandButton, который будет true
.
Свойство disabled
установлено на значение false, а затем изменяется атрибут disabled
из commandButton. Таким образом, обновление в commandButton происходит после завершения функции.
Как обновить атрибут commandButton, когда активируется метод this.setDisabled(true)
?
Я пытался использовать
RequestContext.getCurrentInstance().update("button-id");
после this.setDisabled
, но это не работает.
@sinclair: Обратите внимание, что OP ожидается 'this.setDisabled (истина),' быть сразу видны на стороне клиента еще до того, 'логического состояния = doAnAction() 'выполняется. Таким образом, ваша ссылка отвечает только на часть Y его http://xyproblem.info, а не на часть X. – BalusC
Как вы можете вызвать прослушиватель действий, если кнопка изначально отключена? – raven
Кнопка изначально не отключена. Кнопка должна быть отключена на несколько секунд после вызова actionListener. – Cristian