如何在ASP.Net中的updatepanel中添加css类?

Ern*_*ngs 31 css c# asp.net

如何在asp.net的c#代码隐藏文件中的updatepanel中添加css类

Mil*_*lox 24

你可以使用单个类的html属性

 <asp:UpdatePanel ID="UpdatePanel1" runat="server" class="MyCssClass">
 </asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

  • 这是因为`UpdatePanel`不.NET 3.5实现[`IAttributeAccessor`(http://msdn.microsoft.com/en-us/library/system.web.ui.iattributeaccessor.aspx),但确实在.NET 4(所以你不能通过`Attributes`属性以编程方式添加`class`事件,因为它也是在.NET 4中添加的). (10认同)
  • 这适用于.NET 4,但是当您尝试使用`System.Web.HttpParseException执行此操作时,早期的.NET解析器会崩溃:类型'System.Web.UI.UpdatePanel'没有名为'class'的公共属性 (4认同)

Gav*_*ler 20

如您所见,更新面板没有css类属性.所以既然不能直接完成,你需要一个解决方法; 有两个(从UpdatePanel和CSS中获取)可以获得您想要的行为.

一种是用div包围更新面板:

<div id="foo" style="visibility: hidden; position: absolute">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    </asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)

另一种是根据更新面板的id应用css选择器:

<style type="text/css">
#<%=UpdatePanel1.ClientID%> {
    visibility: hidden;
    position: absolute;
}
</style>
Run Code Online (Sandbox Code Playgroud)

本文中未提及的另一种方法是在div中围绕面板并将更新面板设置为基于它呈现为div的样式:

<style type="text/css">
#foo div {
    visibility: hidden;
    position: absolute;
}
</style>

<div id="foo">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    </asp:UpdatePanel>
</div>
Run Code Online (Sandbox Code Playgroud)


Dan*_*plo 5

更新面板可以呈现为div或span(取决于模式)。实现所需功能的最简单方法是将UpdatePanel包装在标准面板中:

<asp:Panel ID="Panel1" runat="Server">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    </asp:UpdatePanel>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

您可以在代码隐藏中执行此操作:

Panel1.CssClass = "myCssClass";
Run Code Online (Sandbox Code Playgroud)

您也可以像LFSR Consulting所说的那样使用div,runat="server"然后添加然后更改class属性。但是Panel使用起来稍微容易一些(Panel只是作为div渲染)。