I have this control
<asp:Label ID="lblName" runat="server" Text="My Name" CssClass="required regular" /> I want to remove the required class from code behind, how can I do that?
You can replace "required" with an empty string:
lblName.CssClass = lblName.CssClass.Replace("required", ""); "dialog authentication-dialog modal" and you remove the "dialog" class. Using the code from this answer you end up with " authentication- modal".lblName.CssClass = Regex.Replace(lblName.CssClass, @"(?<![\w-])dialog(?![\w-])", "");which uses look behind and look ahead to match word boundaries excluding hyphensJust a slightly more generic way of doing the same - should rule out potential errors where a css class might occur elsewhere in the CssClass property.
public void RemoveCssClass(WebControl controlInstance, String css) { controlInstance.CssClass = String.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray()); } This worked for me
lblName.CssClass = "regular"; regular. It does not "remove" a particular CSS class, per se. It will not work for most people who need to simply remove a single, specific class from a CssClass list.Here is my code inspired by @KevD's code sample.
public static void RemoveCssClass(this HtmlGenericControl controlInstance, string css) { var strCssClass = controlInstance.Attributes["class"]; controlInstance.Attributes["class"] = string.Join(" ", strCssClass.Split(' ').Where(x => x != css).ToArray().Distinct()); } public static void AddCssClass(this HtmlGenericControl controlInstance, string css) { var strCssClass = controlInstance.Attributes["class"]; var cssList = strCssClass.Split(' ').ToArray().Distinct(); cssList= cssList.Append(css); controlInstance.Attributes["class"] = string.Join(" ", cssList); } /// <summary> /// Add or remove specific css class /// </summary> /// <param name="controlInstance">Control to which css is to be added or remove</param> /// <param name="css"> Css class name to be added</param> /// <param name="bAddClass"> True to Add / false to remove</param> public static void AddOrRemoveCssClass(this HtmlGenericControl controlInstance, string css, bool bAddClass) { if (bAddClass) { controlInstance.AddCssClass(css); } else { controlInstance.RemoveCssClass(css); } } public static void RemoveCssClass(this WebControl controlInstance, string css) { controlInstance.CssClass = string.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray().Distinct()); } public static void AddCssClass(this WebControl controlInstance, string css) { var cssList = controlInstance.CssClass.Split(' ').ToArray().Distinct(); cssList= cssList.Append(css); controlInstance.CssClass = string.Join(" ", cssList); } /// <summary> /// Add or remove specific css class /// </summary> /// <param name="controlInstance">Control to which css is to be added or remove</param> /// <param name="css"> Css class name to be added</param> /// <param name="bAddClass"> True to Add / false to remove</param> public static void AddOrRemoveCssClass(this WebControl controlInstance, string css, bool bAddClass) { if (bAddClass) { controlInstance.AddCssClass(css); } else { controlInstance.RemoveCssClass(css); } } NOTE: whether you add or replace a css class in codeBehind, remember to include equivalent attributes in both classes i.e. both having background-color, font-family...etc. because otherwise you may be fooled to think that the class never switched even though it did but didn't update the equivalent attributes.
lblName.Attributes.Add("class","urclassname"); //add class to lblName To remove css Class from Code Behind
lblName.Attributes["class"] = lblName.Attributes["class"].Replace("required", "");;