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

Fer*_*min 6 css asp.net visibility

我的页面上有一些带有"错误"类的标签,.error的规则是:

.error {
    color:Red;
    visibility:hidden    
}
Run Code Online (Sandbox Code Playgroud)

标签的标记是:

<asp:Label ID="lblError" runat="server" CssClass="error" ></asp:Label>
Run Code Online (Sandbox Code Playgroud)

然后我在我的代码后面设置错误标签的.Text属性.
如果我lblError.Visible = True在设置文本时使用,则不显示标签.任何想法为什么会这样?我可能在这里错了,但我认为那个设置.Visible就像设置可见性风格一样?

Ric*_*lay 14

可见属性影响整个元素的渲染,是无关的CSS visibility属性.如果为false,则在阻止任何HTML呈现时可见.

要更改css属性,您需要手动执行此操作.您可以通过从元素中删除"error"类(通过CssClass属性)或通过Attributes属性手动设置style ="visibility:visible"属性来实现此目的(因为style属性会覆盖css类):

control.Attributes["style"] = "visibility: visible";
Run Code Online (Sandbox Code Playgroud)


Ric*_*dOD 12

您在CSS可见性和控件的服务器端Visible属性之间感到困惑.为了更好地理解它,我建议您创建一个带有标签的示例页面,将Visible属性切换为true和false,并查看生成的HTML.

你会发现如下.如实:

<div>
   <label runat="server" visible="true">Hello</label>
</div>
Run Code Online (Sandbox Code Playgroud)

将呈现:

<div>
    <label>Hello</label>
</div>
Run Code Online (Sandbox Code Playgroud)

设置为false时,它将呈现:

<div>

</div>
Run Code Online (Sandbox Code Playgroud)