我对 GWT 有一些经验。在 GWT 中, widget.setVisible() 方法将为小部件添加 style="display:none"
样式。但 vaadin 的组件不会。我检查了 firebug ,当将组件的可见设置为 false 时,我看不到我的组件。为什么 ?
我认为应该也有隐藏样式而不是不包含。我意识到 vaadin 的代码是服务器端的。但有时,如果我只想隐藏(将样式显示设置为无),是否有办法完成此操作而不是使用 css ?
我不明白不添加组件和setVisible(false)之间有什么区别?
最佳答案
正如您已经注意到的,不可见组件不会从服务器传输到浏览器,并且从浏览器的角度来看该组件不存在。这种方法有以下好处:
- 从服务器到客户端传输的数据更少
- 安全性:用户无法使用 Firebug 等工具检查不可见组件生成的 HTML,因为浏览器中不存在这些组件。
所以基本上从浏览器的角度来看,这与您根本不将其添加到 UI 中是一样的。但通常切换组件的可见性比在其父级中添加和删除组件更容易。
如果您想使用 CSS 隐藏组件,您可以通过定义自己的主题并为其添加样式来实现。然后只需使用 addStyleName
方法为要隐藏的组件应用样式即可。
关于vaadin - Component.setVisible() 方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25073085/