Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有CSS可见性的ASP.NET控件:隐藏,未在控件上显示。Visible=true_Asp.net_Css_Visibility - Fatal编程技术网

具有CSS可见性的ASP.NET控件:隐藏,未在控件上显示。Visible=true

具有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”类。error的规则是:

.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,为了再次在页面中获取该控件,需要向服务器发回消息。