我目前正在处理来自Ikarus widgetset插件的SlidingPanel。
我正在尝试在服务器端收到一些“特殊”事件时使用removeComponent()
从视图中删除此Panel(例如,用户单击按钮或窗口已重新调整大小)。但该组件仍在视图中可见。我试图调试数据UI收到:
活动前:
-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
事件发生后:
-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
我从响应中清楚地看到 - 窗口不再包含VIkarusSlidingPanel - 但事实上它仍然存在,因为它没有从DOM中删除。
setVisible(false)
不起作用。我在尝试时收到一个空白页面
在此之后重新加载页面。 (抛出javacript异常)有什么问题?有人可以帮我解决一下吗?
答案 0 :(得分:0)
检查您的组件是否具有即时状态。 在Vaadin中,它只是通过setImmediate(true)在组件上进行设置。 我认为,删除组件的最佳方法是通过setVisible(false)隐藏它。
无论如何,希望你能找到解决方案。