Ich habe ein div-Tag wie folgt erstellt:
System.Web.UI.HtmlControls.HtmlGenericControl dynDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
Ich habe dem div-Tag folgenden Stil hinzugefügt:
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");
Aber ich muss den Stil des div-Tags über eine externe CSS-Datei steuern, die sich im Ordner befindet ~/css/maincss.css
.
Wie kann ich das CSS in dieser Datei auf dieses Div anwenden?
Antworten:
dynDiv.Attributes["class"] = "myCssClass";
quelle
So fügen Sie einem div eine Klasse hinzu, die auf folgende
HtmlGenericControl
Weise generiert wird :div1.Attributes.Add("class", "classname");
Wenn Sie die
Panel
Option verwenden, wäre dies:panel1.CssClass = "classname";
quelle
Wenn Sie einer vorhandenen Liste von Klassen für ein Element eine Klasse hinzufügen möchten:
element.Attributes.Add("class", element.Attributes["class"] + " " + sType);
quelle
Mein Ansatz wäre:
/// <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); } }
quelle
Ich denke, die Antwort von Curt ist jedoch richtig. Was ist, wenn Sie eine Klasse zu einem div hinzufügen möchten, für das bereits eine Klasse im ASP.NET-Code deklariert ist?
Hier ist meine Lösung dafür, es ist eine generische Methode, so dass Sie sie direkt wie folgt aufrufen können:
Asp Net Div Erklärung:
<div id="divButtonWrapper" runat="server" class="text-center smallbutton fixPad">
Code zum Hinzufügen einer Klasse:
divButtonWrapper.AddClassToHtmlControl("nameOfYourCssClass")
Generische Klasse:
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())); } }
quelle
Wenn Sie dies wiederholen, können Sie auch eine Erweiterungsmethode verwenden:
// 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; } }
quelle
Sie fügen die CSS-Datei nicht zum div hinzu, sondern fügen eine Klasse hinzu und setzen Ihren Import wie folgt oben auf die HTML-Seite:
<link href="../files/external.css" rel="stylesheet" type="text/css" />
Fügen Sie dann Ihrem Code eine Klasse wie die folgende hinzu: 'myStyle'.
Dann machen Sie in der CSS-Datei etwas wie:
.myStyle { border-style: 1px solid #DBE0E4; }
quelle
.myStyle
Klasse auf das HTML-Element? Das ist die Frage des OP.Alternativer Ansatz, wenn Sie einer vorhandenen Liste von Klassen eines Elements eine Klasse hinzufügen möchten:
element.Attributes["class"] += " myCssClass";
quelle
Wie wäre es mit einer Erweiterungsmethode?
Hier habe ich eine Ein- oder Ausblendmethode. Mit meiner CSS-Klasse versteckt .
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", "")); } }
Wenn Sie dann Ihre Kontrolle ein- oder ausblenden möchten:
myUserControl.Hide(); //... some other code myUserControl.Show();
quelle