2010-12-02 54 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類,要記住,這兩類等價的屬性,即兩者都具有背景顏色,字體 - 家庭...等。因爲否則,你可能會被愚蠢地認爲班級從來沒有切換過,儘管它沒有更新等效屬性。