我创建了一个这样的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?
答案 0 :(得分:80)
dynDiv.Attributes["class"] = "myCssClass";
答案 1 :(得分:37)
要将类添加到通过HtmlGenericControl
方式生成的div,您可以使用:
div1.Attributes.Add("class", "classname");
如果您使用Panel
选项,则为:
panel1.CssClass = "classname";
答案 2 :(得分:11)
如果要将类添加到元素的现有类列表中:
element.Attributes.Add("class", element.Attributes["class"] + " " + sType);
答案 3 :(得分:6)
我的方法是:
/// <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);
}
}
答案 4 :(得分:4)
我认为Curt的答案是正确的,但是,如果你想将一个类添加到已经有一个在ASP.NET代码中声明的类的div中,那该怎么办呢。
以下是我的解决方案,它是一种通用方法,因此您可以直接调用它:
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()));
}
}
答案 5 :(得分:3)
如果您要重复此操作,可能还有一个扩展方法:
// 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;
}
}
答案 6 :(得分:2)
你没有将css文件添加到div中,你向它添加一个类,然后将导入放在HTML页面的顶部,如下所示:
<link href="../files/external.css" rel="stylesheet" type="text/css" />
然后在代码中添加如下所示的类:'myStyle'。
然后在css文件中执行以下操作:
.myStyle
{
border-style: 1px solid #DBE0E4;
}
答案 7 :(得分:2)
如果要将类添加到元素的现有类列表中,则为另一种方法:
element.Attributes["class"] += " myCssClass";
答案 8 :(得分:1)
扩展方法怎么样?
这里我有一个show或hide方法。使用我的CSS类隐藏。
public static class HtmlControlExtensions
{
public static void Hide(this HtmlControl ctrl)
{
if (!string.IsNullOrEmpty(ctrl.Attributes["class"]))
{
if (!ctrl.Attributes["class"].Contains("hidden"))
ctrl.Attributes.Add("class", ctrl.Attributes["class"] + " hidden");
}
else
{
ctrl.Attributes.Add("class", "hidden");
}
}
public static void Show(this HtmlControl ctrl)
{
if (!string.IsNullOrEmpty(ctrl.Attributes["class"]))
if (ctrl.Attributes["class"].Contains("hidden"))
ctrl.Attributes.Add("class", ctrl.Attributes["class"].Replace("hidden", ""));
}
}
然后当你想显示或隐藏你的控件时:
myUserControl.Hide();
//... some other code
myUserControl.Show();