내가 가지고 <p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
scannerStatus에서primefaces 속성을 업데이트하는 방법은 무엇입니까?
내가 가진 :
private boolean disabled;
// 플러스 geters와 세터
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
문제는 해당 명령의 disabled
속성이 변경되지 않는 경우 activate
방법에서 this.setDisabled(true)
라인 호출됩니다.
disabled
속성이 commandButton에서 true
이되어야합니다.
disabled
속성이 false로 설정되고 commandButton의 disabled
특성이 업데이트됩니다. 따라서 commandButton의 업데이트는 함수가 끝난 후에 발생합니다.
메서드의 this.setDisabled(true)
이 활성화되면 어떻게 명령 단추의 특성을 업데이트 할 수 있습니까?
나는 this.setDisabled
후
RequestContext.getCurrentInstance().update("button-id");
를 사용하려고했지만 제대로 동작하지 않습니다.
@sinclair : 영업 이익은 예상 있음을 참고'this.setDisabled (참)'도'부울 상태 전에 클라이언트 측에서 즉시 볼 수 있도록 = doAnAction()'이 실행됩니다. 따라서 귀하의 링크는 X 부분이 아닌 그의 http://xyproblem.info의 Y 부분 만 응답합니다. – BalusC
버튼이 처음에 비활성화 된 경우 어떻게 액션 리스너를 호출 할 수 있습니까? – raven
버튼이 처음에는 비활성화되어 있지 않습니다. actionListener가 호출 된 후 몇 초 동안 버튼을 비활성화해야합니다. – Cristian