(Wicket) Ändere die Sichtbarkeit während der Ajax-Antwort

8

Ich habe einen AjaxPagingNavigator. Grundsätzlich unter einer bestimmten Bedingung, die Liste, die die AjaxPagingNavigator Seiten neu geladen wird. Wenn das passiert, möchte ich nur den Navigator rendern, wenn die Liste mehr als 1 Seite enthält.

So weiß jemand, wo ich einen Handler anhängen kann, damit ich in meinem AjaxPagingNavigator nach einer Sichtbarkeitsbedingung suchen und die Sichtbarkeit aktivieren / deaktivieren kann, wenn der Navigator über aktualisiert wird. Ajax ist es entweder sichtbar oder nicht?

Auszeichnung:

%Vor%

Also habe ich ein Ajax-Ereignis, das "mainWrap" aktualisiert, das den "Navigator" zusammen mit der "Liste" und den Wrappings aktualisiert.

Dies ist das Ereignis, das die ganze Sache auslöst.

%Vor%

Edit: Ich weiß, dass ich schreiben kann

%Vor%

nach dem Erstellen des Navigators und nach dem Aktualisieren des Modells, aber ich hoffte, das in einer Unterklasse von AjaxPagingNavigator einzukapseln.

    
Dmitriy Likhten 05.02.2010, 19:42
quelle

2 Antworten

16

Seien Sie vorsichtig mit teuren Berechnungen in einer überschriebenen isVisible -Methode, da Wicket isVisible mehrmals pro Anforderung aufruft - und zählt dabei keine Anrufe, die Sie versehentlich ausführen könnten.

Normalerweise besteht die beste Möglichkeit darin, onConfigure zu überschreiben und das Sichtbarkeits-Flag manuell zu setzen.

%Vor%

onConfigure wird nur einmal während der Anforderungsverarbeitung aufgerufen und für alle Komponenten aufgerufen, einschließlich derjenigen, die nicht sichtbar sind (während onBeforeRender nur für sichtbare Komponenten aufgerufen wird).

    
Martijn Dashorst 18.03.2011, 16:47
quelle
1

Es ist eine Weile her, seit ich Wicket berührt habe, aber wenn die Erinnerung funktioniert:

Können Sie nicht die isVisible () -Methode des „Navigator“ Objekt außer Kraft setzen, so dass sie nur angezeigt, unter der Bedingung, die Sie wünschen?

z.B. etwas wie

%Vor%     
aw crud 05.02.2010 19:47
quelle

Tags und Links