如何将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())); } }