Ich habe eine Vaadin window1, die eine ComboBox
von Elementen aus der Datenbank enthält. Wenn ich einen Artikel dieses ComboBox
auswähle, habe ich ein window2, das erscheint. Diese window2 gibt mir die Möglichkeit, Daten in der Datenbank hinzuzufügen. Jetzt möchte ich den neuen Artikel in meinem ComboBox
in window1 nach dem Schließen window2 sehen. Haben Sie eine Idee, wie Sie das erreichen können?Update Combobox in Fenster 1 nach der Aktualisierung von window2 Vaadin
Antwort
Sie müssen die Container-Datenquelle aktualisieren. In meinem Fall hatte ich eine JPAContainer
, die eine Methode hat, siehe documentation. Wenn Sie SQLContainer
verwenden, dann werfen Sie einen Blick auf seine documentation.
Wenn Sie keinen speziellen Container außer der ComboBox
Methode addItem
verwenden, sollten Sie removeAllItems
aufrufen und die neuen Elemente hinzufügen (indem Sie die DB-Abfrage erneut ausführen).
So erstelle ich meine Combobox: phaseStatus = new ComboBox ("Phase Status"); phaseStatus.setWidth ("250px"); phaseStatus.setImmediate (true); phaseStatusItem = securityAssessmentPhaseStatusRepository.findAll(); für (SecurityAssessmentPhaseStatus m: phaseStatusItem) {phaseStatus.addItem (m.getOid()); phaseStatus.setItemCaption (m.getOid(), m.getStatusName()); } - – FoufaFaFa
Nun, dann müssen Sie alte Elemente entfernen und die neuen Elemente zu "ComboBox" hinzufügen. Ich werde meine Antwort anpassen. –
vielen Dank – FoufaFaFa
Wie erfolgt die Datenbindung von der Datenbank an die Vaadin-Komponente (n)? Abhängig von der Datenbindung können Sie einige refreshEvents auslösen oder manuell tun –
So erstelle ich meine Combobox: phaseStatus = new ComboBox ("Phase Status"); \t \t phaseStatus.setWidth ("250px"); \t \t phaseStatus.setImmediate (true); \t \t phaseStatusItem = securityAssessmentPhaseStatusRepository.findAll(); \t \t für (SecurityAssessmentPhaseStatus m: phaseStatusItem) { \t \t \t phaseStatus.addItem (m.getOid()); \t \t \t phaseStatus.setItemCaption (m.getOid(), m.getStatusName()); \t \t} – FoufaFaFa