c# - 如何向 ASP.NET 中的元素添加多个类?

标签 c# asp.net css

我正在尝试以编程方式将第二个类添加到 <td> C# 中的元素。

我要添加类的元素已经分配了一个类。

如果我做类似的事情

myObject.CssClass = "MyClass";

它只是覆盖了原来的类。

我想我可以做类似的事情

myObject.CssClass += " MyClass";

但是那太丑了..

*免责声明 - 我讨厌在 C# 中使用 HTML/CSS 做任何事情的想法,但我被指派对已经很糟糕的代码库进行快速修复。我认为在这里尝试“擦亮粪便”没有任何意义,所以请不要打倒我!! :-)

最佳答案

如果您不喜欢处理字符串连接,您可以创建一些辅助扩展方法。也许有更多代码,但您可以添加和删除类而看不到后面发生了什么。也许代码在您使用它的地方看起来会更清晰。

myObject.AddCssClass("someclass");
myObject.RemoveCssClass("someclass");

---------

public static class WebHelper
{
    public static void AddCssClass(this WebControl control, string cssClass)
    {
        List<string> classes;
        if (!string.IsNullOrWhiteSpace(control.CssClass))
        {
            classes = control.CssClass.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList();
            if (!classes.Contains(cssClass))
                classes.Add(cssClass);
        }
        else
        {
            classes = new List<string> {cssClass};
        }
        control.CssClass = string.Join(" ", classes.ToArray());
    }

    public static void RemoveCssClass(this WebControl control, string cssClass)
    {
        List<string> classes = new List<string>();
        if (!string.IsNullOrWhiteSpace(control.CssClass))
        {
            classes = control.CssClass.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList();
        }
        classes.Remove(cssClass);
        control.CssClass = string.Join(" ", classes.ToArray());
    }
}

关于c# - 如何向 ASP.NET 中的元素添加多个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896303/

相关文章:

c# - 如何实现模型以强制客户端至少填写 ASP.NET MVC 中的两个输入之一

php - 不使用生产服务器直接上传到 s3

javascript - 如何将 <div> 标签附加到 <tr> 标签中,且位置与 <tr> 标签完全相同

C#/Informix : Do I need to explicitly call Close on my DB Connection if it's in a using statement?

c# - 字符字面量中的字符太多是什么错误

asp.net - .skin和.css来自asp.net

jquery - 为什么我的 mouseout fadeOut 有效,但随后又淡入?

javascript - 如何在 Bootstrap 网站中添加 Logo /客户端 slider

c# - 使用 LINQ 有条件地更新列表

c# - 如何解决 SignalR 在背板横向扩展中的局限性