如何在.NET中使用C#编辑div的CSS样式

Jon*_*ock 46 .net css c#

我正试图在后面的代码中获取div的ID(C#)并在其上设置一些css.我可以从DOM中获取它还是必须使用某种控件?

<div id="formSpinner">
    <img src="images/spinner.gif" />
    <p>Saving...</p>
</div>
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 75

runat="server"属性添加到它,以便您具有:

<div id="formSpinner" runat="server">
    <img src="images/spinner.gif">
    <p>Saving...</p>
</div>
Run Code Online (Sandbox Code Playgroud)

这样您就可以使用以下方法访问class属性:

formSpinner.Attributes["class"] = "classOfYourChoice";
Run Code Online (Sandbox Code Playgroud)

值得一提的是,asp:Panel控件实际上是同义词(至少就渲染标记而言)div,所以你也可以这样做:

<asp:Panel id="formSpinner" runat="server">
    <img src="images/spinner.gif">
    <p>Saving...</p>
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

然后,您可以写:

formSpinner.CssClass = "classOfYourChoice";
Run Code Online (Sandbox Code Playgroud)

这使您可以更加明确地访问该属性,还有一些可能对您有用,也可能不对您有用.


tva*_*son 13

确保你的div设置为runat ="server",然后在代码隐藏中引用它并设置"class"属性.

<div runat="server" id="formSpinner">
   ...content...
</div>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

formSpinner.Attributes["class"] = "class-name";
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 6

这个问题让我很紧张.它表明您可能不理解使用服务器端代码将如何影响您的页面的DOM状态.

每当您运行服务器端代码时,整个页面都是从头开始重建的.这有几个含义:

  • 表单从客户端提交到Web服务器.这是关于Web浏览器可以采取的最慢的操作,特别是在ASP.Net中,表单可能用额外的字段填充(即:ViewState).对于琐碎的活动来说,经常这样做会使你的应用看起来很迟钝,即使其他一切都很好而且活泼.
  • 它在带宽(上行和下行)和CPU /内存方面增加了服务器的负载.重建页面所涉及的一切都必须再次发生.如果页面上有动态控件,请不要忘记创建它们.
  • 自上次请求丢失以来您对DOM所做的任何事情都会丢失,除非您记得再次为此请求执行此操作. 您的页面的DOM已重置.

如果你能逃脱它,你可能想把它推到javascript并避免回发.也许使用XmlHttpRequest()调用来触发您需要的任何服务器端操作.