3

我尝试使用 server-side .CssClass,但这不适用于我。我的 div 有runat="server",所以我可以访问它,但是当我点击“。”时,我无法.CssClass在下拉列表中看到。有谁知道如何克服这个或任何其他可能有效的解决方案?

好吧,我的错。我刚刚发现这不适用于 HTML 控件,仅适用于 asp 控件

4

6 回答 6

17

如果您想读取类名,则需要使用代码:

string className = Test.Attributes["class"].ToString();

如果要替换特定类,则需要使用以下代码:

Test.Attributes.Add("class", Test.Attributes["class"].ToString().Replace("spacerDiv", ""));
于 2012-04-17T14:28:45.297 回答
7
HTML
<div id="Test" runat="server"></div>

代码背后

add =>       Test.Attributes.Add("class", "myClass")

remove =>    Test.Attributes.("class") = "";
于 2012-04-17T14:15:00.653 回答
3

这将更具体:

HTML

<div id="Test" runat="server"></div>

服务器代码:

Test.Attributes.Remove("class");
于 2014-08-07T12:13:11.080 回答
0

这与 Tim 的解决方案相同,但我删除了不需要的 toString 方法。

myDiv.Attributes.Add("class", myDiv.Attributes["class"].Replace("spacerDiv", ""));     

将类添加到 div 有点相同。

myDiv.Attributes.Add("class", "spacerDiv"); 
于 2014-12-04T13:16:21.603 回答
0

删除 CSS 类

myDiv.Attributes["class"]="";

于 2018-07-31T08:53:40.443 回答
0

为任何 HtmlGenericControl 添加或删除类的更好方法是使用如下提供的扩展:

  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());
    }

    public static void AddCssClass(this HtmlGenericControl controlInstance, string css)
    {
        var strCssClass = controlInstance.Attributes["class"];
        controlInstance.Attributes["class"] = string.Join($" {css} ", strCssClass.Split(' ').ToArray());
    }

对于 WebControl,相同的代码可以修改如下:

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());
    }
于 2019-12-09T06:18:01.440 回答