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?
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", "");
Just 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());
}
Use this:
object.CssClass= object.CssClass.Replace("MyClass", "");
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);
}
}
lblName.Attributes.Add("class","urclassname"); //add class to lblName
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.
To remove css Class from Code Behind
lblName.Attributes["class"]=" ";