2010-12-02 53 views
30

代码,我有这个控制删除CSS类在后面

<asp:Label ID="lblName" runat="server" Text="My Name" CssClass="required regular" /> 

我想从后面的代码删除required类,我该怎么办呢?

回答

52

一个空字符串可以更换“需要”:

lblName.CssClass = lblName.CssClass.Replace("required", ""); 
+0

不错,简单但优雅.. – 2010-12-02 10:22:04

+16

简单,并可能容易出错。假设你有一个CSS类列表,比如``dialog authentication-dialog modal“`,并且你删除了”dialog“类。使用这个答案中的代码,你最终得到''认证模式''。 – FreeAsInBeer 2014-06-25 13:10:10

+0

您仍然可以进行替换,但使用正则表达式排除连字符错误的情况。您不能使用\ b单词边界元字符,因为这将匹配“ - ”作为边界。取而代之的是使用`lblName.CssClass = Regex.Replace(lblName.CssClass,@“(?<![\ w - ])对话框(?![\ w-])”,“”);`并期待匹配不包括连字符的单词边界 – 2017-04-07 10:17:46

1

使用此:

object.CssClass= object.CssClass.Replace("MyClass", ""); 
+1

ooppsss我实际上与Jorge M.有相同的答案。您可以将他的答案标记为正确。没有注意到,虽然当我发布我的答案时,他的答案是第一位的。对于那个很抱歉。 – 2010-12-02 09:57:39

14

只是做同样的一个稍微更通用的方法 - 应排除潜在的错误,其中一个css类可能发生在CssClass属性的其他地方。

public void RemoveCssClass(WebControl controlInstance, String css) 
{ 
    controlInstance.CssClass = String.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray()); 
} 
0
lblName.Attributes.Add("class","urclassname"); //add class to lblName 
1

这为我工作

lblName.CssClass = "regular"; 
0

注意:无论您添加或替换代码隐藏CSS类,要记住,这两类等价的属性,即两者都具有背景颜色,字体 - 家庭...等。因为否则,你可能会被愚蠢地认为班级从来没有切换过,尽管它没有更新等效属性。