C# 如何将css类添加到html通用控件div?
我创建了一个div标记,如下所示:C# 如何将css类添加到html通用控件div?,c#,css,C#,Css,我创建了一个div标记,如下所示: System.Web.UI.HtmlControls.HtmlGenericControl dynDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV"); dynDiv.Style.Add(HtmlTextWriterStyle.BorderStyle, "1px solid #DBE0E4"); dynDiv.Style.Add(HtmlTextWriterStyle.Heig
System.Web.UI.HtmlControls.HtmlGenericControl dynDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("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");
我将样式添加到div标记中,如下所示:
System.Web.UI.HtmlControls.HtmlGenericControl dynDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("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?如果不将css文件添加到该div,请向其添加一个类,然后将导入内容放在HTML页面的顶部,如下所示:
<link href="../files/external.css" rel="stylesheet" type="text/css" />
要将类添加到通过
HtmlGenericControl
生成的div中,可以使用:
div1.Attributes.Add("class", "classname");
如果您使用的是面板
选项,它将是:
panel1.CssClass = "classname";
/// <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);
}
}
如果要将类添加到元素的现有类列表中,请执行以下操作:
element.Attributes.Add("class", element.Attributes["class"] + " " + sType);
如果要重复此操作,最好使用扩展方法:
// 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;
}
}
我的做法是:
panel1.CssClass = "classname";
/// <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类
///
///目标控制
///要附加的CSS类名
公共静态void AppendCss(HtmlGenericControl控件,字符串cssClass)
{
//确保CSS类已定义
if(string.IsNullOrEmpty(cssClass))返回;
//附加CSS类
if(string.IsNullOrEmpty(control.Attributes[“class”]))
{
//将我们的CSS类设置为仅一个
control.Attributes[“class”]=cssClass;
}
其他的
{
//用空格作为seperator追加新的CSS类
控件属性[“类”]+=(“”+cssClass);
}
}
我认为Curt的答案是正确的,但是,如果您想向已经在ASP.NET代码中声明了类的div添加一个类,该怎么办
这是我的解决方案,它是一个通用方法,因此您可以直接调用它,如下所示:
Asp Net Div声明:
<div id="divButtonWrapper" runat="server" class="text-center smallbutton fixPad">
通用类:
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()));
}
}
扩展方法怎么样 这里我有一个显示或隐藏方法。使用我的CSS类隐藏 然后,当您要显示或隐藏控件时:
myUserControl.Hide();
//... some other code
myUserControl.Show();
如果要将类添加到元素的现有类列表中,可采用另一种方法:
element.Attributes.Add("class", element.Attributes["class"] + " " + sType);
element.Attributes[“class”]+=“myCssClass”;
在div元素中添加一个类或ID,然后您可以在CSS中使用它做任何您喜欢的事情。从技术上讲,它将替换该类。它没有添加它。您可以使用dynDiv.Attributes[“class”]+=“myCssClass”@GarrGodfrey记得在类之间添加一个空格。我应该把泛型类放在哪里?你可以把它放在web应用程序的一个Util文件夹中。这是我为此目的创建的一个文件夹?是的,但理论上你可以把它放在任何你想要的地方。它仅用于组织目的。如何将.myStyle
类添加到html元素中?这就是OP的问题所在。这是真的,尽管下面的其他答案适用于是否已经在课程列表中的课程。