ASP.NET中控件Visible属性
ASP.NET中Visible等同于Css中Visibility属性,二者显示效果都一样;但是还是有区别的;
ASP.NET中Visible="false"在呈现成HTML标记语言时ASP.NET会去掉此标记语言,换句话说你用JS是取不到这个标记类容的,它被序列化后放入隐藏的VIEWSTATE中,不输出到客户端,只有服务器通过反序列化后才能调用到。
而CSS中style="visibility:hidden;"和js中的control.style.visibility="hidde";它只是把当前控检的标记标识为不显示,表示不显示出来。但在页面呈现的HTML标记语言中是存在着的,换句话说就是用JS取查找这个控检是可以查找到的。
所以我们在使用服务器控件并不显示它并且需要用JS对这个控件行为时用visibility,否则客户端取不到该控件;正确的是设置Css样式。
比如:
Button1.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
而不要用服务器控件本身的Visible="false"属性。
另外,CSS 中:
visibility:hidden 表示不显示,但占据网页的空间。
display:none 表示不显示,也不占据网页的空间。
所以我们如果想隐藏一个控件,而又不想让他占网页空间,使用display:none;