具有CSS可见性的ASP.NET控件:隐藏,未在控件上显示。Visible=true
我的页面上有几个标签带有“error”类。error的规则是:具有CSS可见性的ASP.NET控件:隐藏,未在控件上显示。Visible=true,asp.net,css,visibility,Asp.net,Css,Visibility,我的页面上有几个标签带有“error”类。error的规则是: .error { color:Red; visibility:hidden } 标签的标记为: <asp:Label ID="lblError" runat="server" CssClass="error" ></asp:Label> 然后在我的代码隐藏中设置错误标签的.Text属性。 如果在设置文本时使用lblError.Visible=True,则不会显示标签。你知道为什
.error {
color:Red;
visibility:hidden
}
标签的标记为:
<asp:Label ID="lblError" runat="server" CssClass="error" ></asp:Label>
然后在我的代码隐藏中设置错误标签的.Text属性。如果在设置文本时使用
lblError.Visible=True
,则不会显示标签。你知道为什么会这样吗?我可能错了,但我认为设置.Visible就像设置可见性样式一样?该属性会影响整个元素的呈现,并且与CSS可见性属性无关。如果为false,则在完全阻止呈现任何HTML时可见
要更改css属性,您需要手动执行。您可以通过从元素中删除“error”类(通过属性)或通过属性手动设置style=“visibility:visible”属性(因为样式属性覆盖css类)来实现这一点:
看看这一页,它应该澄清一些事情: 如前所述: Visible属性是serverside,确定服务器是否将呈现控件(如果未呈现控件,则不会为其创建HTML,也不会在发送到客户端的最终HTML中)
Style属性控制元素的Style属性。元素将被渲染,但您可以控制可见性(CSS)。您将混淆CSS可见性和控件的服务器端可见属性。为了更好地理解它,我建议您创建一个带有标签的示例页面,在true和false之间切换Visible属性,并查看生成的HTML 你会发现如下。诚然:
<div>
<label runat="server" visible="true">Hello</label>
</div>
你好
将呈现:
<div>
<label>Hello</label>
</div>
<div>
</div>
你好
设置为false时,它将渲染:
<div>
<label>Hello</label>
</div>
<div>
</div>
是的,我不确定差异是什么。这太棒了。要呈现的html更少=更快的网站。如果我想在点击某个按钮后动态显示某个控件,那么我是否只会使用css方法?例如@rory yes,为了再次在页面中获取该控件,需要向服务器发回消息。