Ich habe ein <p:commandButton disabled="#{scannerStatus.disabled}" actionListener="#{scannerStatus.activate}" id="button-id"/>
Wie aktualisiert man das Attribut "primefaces"?
In scannerStatus ich habe:
private boolean disabled;
// Plus geters und Setter
public void activate() {
this.setDisabled(true);
boolean status = doAnAction(); // This takes some seconds
if (!status) {
doSomething();
} else {
this.setDisabled(false);
}
}
Das Problem ist, dass das disabled
Attribut von dem Befehl wenn this.setDisabled(true)
Linie von activate
Methode nicht ändern wird genannt.
Ich brauche einige Sekunden das disabled
Attribut von der Befehlsschaltfläche zu true
sein. Die disabled
-Eigenschaft wird auf false zurückgesetzt, und dann wird das disabled
-Attribut von commandButton aktualisiert. Das Update in commandButton erfolgt also nach dem Ende der Funktion.
Wie kann ich das Attribut der commandButton aktualisieren, wenn die this.setDisabled(true)
in der Methode aktivieren?
habe ich versucht,
RequestContext.getCurrentInstance().update("button-id");
nach dem this.setDisabled
zu verwenden, aber es funktioniert nicht.
@sinclair: Beachten Sie, dass OP erwartet die 'this.setDisabled (true)' sofort sichtbar in der Client-Seite zu sein, noch bevor 'boolean Status = doAnAction() 'wird ausgeführt. Dein Link beantwortet also nur den Y-Teil seines http://xyprodukt.info, nicht den X-Teil. – BalusC
Wie können Sie den Aktionslistener aufrufen, wenn die Schaltfläche anfänglich deaktiviert ist? – raven
Die Schaltfläche ist anfangs nicht deaktiviert. Nach dem Aufruf des actionListeners muss die Schaltfläche für einige Sekunden deaktiviert werden. – Cristian