我对GWT有一些经验。在GWT中,widget.setVisible()方法将向窗口小部件添加style="display:none"
样式。但是vaadin的成分不会。我用firebug检查过,在设置 false 的组件时,我无法看到我的组件。为什么?
我认为应该也有隐藏的风格而不是不包含。我认为vaadin的代码是服务器端。但有时候,如果我想隐藏(将样式显示设置为无),无论如何都要完成此操作而不是使用css?
我不明白不添加组件和 setVisible(false)之间的区别概念?
答案 0 :(得分:4)
正如您已经注意到的那样,不可见组件不会从服务器传输到浏览器,从浏览器的角度来看,该组件不存在。这种方法必须带来好处:
所以基本上从浏览器的角度来看,你根本没有将它添加到UI中是一回事。但通常更容易切换组件的可见性,而不是从其父级添加和删除它。
如果您想使用CSS隐藏组件,可以通过定义自己的主题并为其添加样式来实现。然后,只需使用addStyleName
方法为要隐藏的组件应用样式。
答案 1 :(得分:2)
SETVISIBLE
设置组件的可见性。
Visible components are drawn in the user interface, while invisible ones are not. The effect is not merely a cosmetic CSS change - no information about an invisible component will be sent to the client. The effect is thus the same as removing the component from its parent.
因为documentation表示不可见的组件不可见。