如何将CSS类添加到HTML通用控件的div?

我创build了这样一个div标签:

System.Web.UI.HtmlControls.HtmlGenericControl dynDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV"); 

我添加样式到div标签是这样的:

 dynDiv.Style.Add(HtmlTextWriterStyle.BorderStyle, "1px solid #DBE0E4"); dynDiv.Style.Add(HtmlTextWriterStyle.Height, "auto"); dynDiv.Style.Add(HtmlTextWriterStyle.MarginTop, "5px"); dynDiv.Style.Add(HtmlTextWriterStyle.PaddingBottom, "5px"); dynDiv.Style.Add(HtmlTextWriterStyle.Width, "682px"); 

但我需要通过位于文件夹~/css/maincss.css的外部css文件来控制div标签的样式。

我怎样才能将该文件中的CSS应用到这个div?

 dynDiv.Attributes["class"] = "myCssClass"; 

要将一个类添加到通过HtmlGenericControl方法生成的div,您可以使用:

 div1.Attributes.Add("class", "classname"); 

如果您正在使用Panel选项,那将是:

 panel1.CssClass = "classname"; 

如果你想添加一个类到一个元素的类的现有列表中:

 element.Attributes.Add("class", element.Attributes["class"] + " " + sType); 

我的做法是:

 /// <summary> /// Appends CSS Class seprated by a space character /// </summary> /// <param name="control">Target control</param> /// <param name="cssClass">CSS class name to append</param> public static void AppendCss(HtmlGenericControl control, string cssClass) { // Ensure CSS class is definied if (string.IsNullOrEmpty(cssClass)) return; // Append CSS class if (string.IsNullOrEmpty(control.Attributes["class"])) { // Set our CSS Class as only one control.Attributes["class"] = cssClass; } else { // Append new CSS class with space as seprator control.Attributes["class"] += (" " + cssClass); } } 

你不要把CSS文件添加到div,你添加一个类,然后把你的导入在HTML页面的顶部,如下所示:

 <link href="../files/external.css" rel="stylesheet" type="text/css" /> 

然后像下面这样添加一个类到你的代码中:'myStyle'。

然后在css文件中做一些事情:

 .myStyle { border-style: 1px solid #DBE0E4; } 

如果你要重复这个,不妨有一个扩展方法:

 // appends a string class to the html controls class attribute public static void AddClass(this HtmlControl control, string newClass) { if (control.Attributes["class"].IsNotNullAndNotEmpty()) { control.Attributes["class"] += " " + newClass; } else { control.Attributes["class"] = newClass; } } 

我认为Curt的答案是正确的,但是,如果你想添加一个类到一个已经在ASP.NET代码中声明了类的div中。

这是我的解决scheme,这是一个通用的方法,所以你可以直接调用它:

Asp Net Div声明:

 <div id="divButtonWrapper" runat="server" class="text-center smallbutton fixPad"> 

代码添加类:

 divButtonWrapper.AddClassToHtmlControl("nameOfYourCssClass") 

通用类:

 public static class HtmlGenericControlExtensions { public static void AddClassToHtmlControl(this HtmlGenericControl htmlGenericControl, string className) { if (string.IsNullOrWhiteSpace(className)) return; htmlGenericControl .Attributes.Add("class", string.Join(" ", htmlGenericControl .Attributes["class"] .Split(' ') .Except(new[] { "", className }) .Concat(new[] { className }) .ToArray())); } }