Ich habe ein Label, das mehrfach in meiner Seite verwendet wird. Es funktioniert gut, bis ich versuche, das Etikett per Ajax zu aktualisieren. Ergebnis: Nur das erste Label wird aktualisiert. Ist es ein bekanntes Problem? Ich bin mir nicht sicher, da ich die JIRA-Seite nicht öffnen kann: https://issues.apache.org/jira/browse/wicket (Get Throbber alle Zeit). Ich benutze Wicket Version 7.3.0Aktualisieren Sie ein Etikett, das mehrere Male verwendet
To reproduce this issue: 1. Add an label on your page (java part): private final Label label; .. label = new Label("yourLabel", "Your Text"); label.setOutputMarkupId(true); add(label); ... 1. Add your label multiple time (for e.g. 4 times) in your page (html part): ... <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> <span wicket:id="yourLabel"/> ... 2. Add event handler for e.g. the ajax event is UpdateEvent in your page (java part) ... @Override public void onEvent(IEventevent) { if (event.getPayload() instanceof UpdateEvent) { //update your label label.setDefaultModelObject("new Text"); target.add(label); } }
=> nur das erste Etikett wird aktualisiert. Ich habe eine Problemumgehung dafür, indem ich 4 verschiedene Instanzen von Etiketten mit demselben Textinhalt hinzufüge.
1. Verwenden Sie das Modell, nicht "Ad-hoc" Label mit Text. 2. Mehrfachverwendung des gleichen Wickets: ID ist seltsam, ich bin überrascht, es funktioniert. 3. Add to target ale comoponets wollen aktualisieren –
Re 2: Er läuft in der Deployment-Konfiguration, wo DebugSettings # componentUseCheck deaktiviert ist. – svenmeier