私はこのコントロールを持っています
<asp:Label ID="lblName" runat="server" Text="My Name" CssClass="required regular" />
コードビハインドからrequired
クラスを削除したいのですが、どうすればよいですか?
「required」を空の文字列に置き換えることができます。
lblName.CssClass = lblName.CssClass.Replace("required", "");
同じことをややより一般的な方法で-CssClassプロパティの別の場所でcssクラスが発生する可能性がある潜在的なエラーを除外する必要があります。
public void RemoveCssClass(WebControl controlInstance, String css)
{
controlInstance.CssClass = String.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray());
}
これは私のために働いた
lblName.CssClass = "regular";
これを使って:
object.CssClass= object.CssClass.Replace("MyClass", "");
lblName.Attributes.Add("class","urclassname"); //add class to lblName
これは、@ KevDのコードサンプルに触発された私のコードです。
public static class WebControlExtension
{
public static void RemoveCssClass(this WebControl controlInstance, String css)
{
controlInstance.CssClass = String.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray());
}
public static void AddCssClass(this WebControl controlInstance, String css)
{
controlInstance.CssClass = String.Join($" {css} ", controlInstance.CssClass.Split(' ').ToArray());
}
}
コードビハインドからcssクラスを削除するには
lblName.Attributes["class"]=" ";
注:codeBehindでcssクラスを追加または置換するかどうかにかかわらず、両方のクラスに同等の属性を含めることを忘れないでください。それ以外の場合は、同等の属性を更新しなかったにもかかわらず、クラスが切り替えられなかったと考えるのにだまされる可能性があるためです。