在代码隐藏中设置 CssClass
很容易,但这有覆盖现有类的风险。
我需要将某些元素设置为 ReadOnly = true;
并且我想应用一种样式作为视觉提示,表明该元素无法更改......非常简单:
.CssClass += " ReadOnlyStyle";
但有时我也需要将相同的元素更改为ReadOnly = false;
,这意味着我需要删除我设置的 CSS 类而不删除我可能分配的任何其他样式。
执行此操作的最佳方法是什么?
最佳答案
我对 AnthonyWJones 的原始代码进行了修改,以便它在任何情况下都能正常工作:
static class WebControlsExtensions
{
public static void AddCssClass(this WebControl control, string cssClass)
{
List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
classes.Add(cssClass);
control.CssClass = classes.ToDelimitedString(" ");
}
public static void RemoveCssClass(this WebControl control, string cssClass)
{
List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
classes.Remove(cssClass);
control.CssClass = classes.ToDelimitedString(" ");
}
}
static class StringExtensions
{
public static string ToDelimitedString(this IEnumerable<string> list, string delimiter)
{
StringBuilder sb = new StringBuilder();
foreach (string item in list)
{
if (sb.Length > 0)
sb.Append(delimiter);
sb.Append(item);
}
return sb.ToString();
}
}
关于c# - 从代码更改 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445967/