Ich befasse mich derzeit mit SlidingPanel von Ikarus widgetset Add-on. Ich versuche, dieses Panel aus der Sicht mit removeComponent()
zu entfernen, wenn ich ein "spezielles" Ereignis auf der Server-Seite (zum Beispiel Benutzer klickte die Schaltfläche oder das Fenster wurde Größe) erhalten. Die Komponente ist jedoch weiterhin in der Ansicht sichtbar. Ich habe versucht, die Daten UI zu debuggen empfängt:Das Entfernen der Komponente aus dem Layout schlägt fehl
vor dem Ereignis:
-Response:
-change format=uidl pid=PID0
-com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=590px width=815px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true layoutRelativeHeight=true layoutRelativeWidth=true
+variables
-com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
+com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
+com.vaadin.terminal.gwt.client.ui.VPanel
+com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
+com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility
+com.velociti.ikarus.widget.client.ui.VIkarusSlidingPanel
Nach Ereignis:
-Response:
-change format=uidl pid=PID0
-com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=995px width=1853px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true layoutRelativeHeight=true layoutRelativeWidth=true
+variables
-com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
+com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
+com.vaadin.terminal.gwt.client.ui.VPanel
+com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
+com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility
Was ich klar aus der Antwort sehen - das Fenster enthält keine VIkarusSlidingPanel mehr - Aber es ist immer noch da, weil es nicht aus dem DOM entfernt wurde.
- Das einzige, was mir hilft - Seite neu laden.
- Entfernen von Schaltflächen aus dem Fenster auf dem gleichen Ereignis - funktioniert perfekt.
setVisible(false)
funktioniert nicht. Ich erhalte eine leere Seite, wenn ich die Seite danach neu laden möchte. (die javascript-Ausnahme wird ausgelöst)
Was ist das Problem? Kann mir jemand mit einem Workaround helfen?
Wenn Sie eine andere Komponente an derselben Stelle verwenden, funktioniert das Entfernen? – miq
Ja, natürlich. Ich habe in der Post geschrieben: "Entfernen von Schaltflächen aus dem Fenster auf dem gleichen Ereignis - funktioniert perfekt." - Stattdessen kann die Schaltfläche eine Komponente sein und es wird funktionieren. – Viktor