【发布时间】:2011-05-19 00:40:15
【问题描述】:
我有这个控制
<asp:Label ID="lblName" runat="server" Text="My Name" CssClass="required regular" />
我想从后面的代码中删除required 类,我该怎么做?
【问题讨论】:
我有这个控制
<asp:Label ID="lblName" runat="server" Text="My Name" CssClass="required regular" />
我想从后面的代码中删除required 类,我该怎么做?
【问题讨论】:
您可以将“required”替换为空字符串:
lblName.CssClass = lblName.CssClass.Replace("required", "");
【讨论】:
"dialog authentication-dialog modal" 这样的 CSS 类列表,并且您删除了“对话框”类。使用此答案中的代码,您最终会得到" authentication- modal"。
lblName.CssClass = Regex.Replace(lblName.CssClass, @"(?<![\w-])dialog(?![\w-])", "");之类的东西,它使用向后看和向前看来匹配不包括连字符的单词边界
使用这个:
object.CssClass= object.CssClass.Replace("MyClass", "");
【讨论】:
只是一种更通用的方法 - 应该排除在 CssClass 属性的其他地方可能出现 css 类的潜在错误。
public void RemoveCssClass(WebControl controlInstance, String css)
{
controlInstance.CssClass = String.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray());
}
【讨论】:
lblName.Attributes.Add("class","urclassname"); //add class to lblName
【讨论】:
这对我有用
lblName.CssClass = "regular";
【讨论】:
注意:无论您在 codeBehind 中添加还是替换 css 类,请记住在两个类中包含等效属性,即都具有背景颜色、字体系列...等。因为否则您可能会误以为该类从未切换,即使它确实切换了但没有更新等效属性。
【讨论】:
从后面的代码中删除 css 类
lblName.Attributes["class"]=" ";
【讨论】:
这是我受@KevD 的代码示例启发的代码。
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().Distinct());
}
public static void AddCssClass(this HtmlGenericControl controlInstance, string css)
{
var strCssClass = controlInstance.Attributes["class"];
var cssList = strCssClass.Split(' ').ToArray().Distinct();
cssList= cssList.Append(css);
controlInstance.Attributes["class"] = string.Join(" ", cssList);
}
/// <summary>
/// Add or remove specific css class
/// </summary>
/// <param name="controlInstance">Control to which css is to be added or remove</param>
/// <param name="css"> Css class name to be added</param>
/// <param name="bAddClass"> True to Add / false to remove</param>
public static void AddOrRemoveCssClass(this HtmlGenericControl controlInstance, string css, bool bAddClass)
{
if (bAddClass)
{
controlInstance.AddCssClass(css);
}
else
{
controlInstance.RemoveCssClass(css);
}
}
public static void RemoveCssClass(this WebControl controlInstance, string css)
{
controlInstance.CssClass = string.Join(" ", controlInstance.CssClass.Split(' ').Where(x => x != css).ToArray().Distinct());
}
public static void AddCssClass(this WebControl controlInstance, string css)
{
var cssList = controlInstance.CssClass.Split(' ').ToArray().Distinct();
cssList= cssList.Append(css);
controlInstance.CssClass = string.Join(" ", cssList);
}
/// <summary>
/// Add or remove specific css class
/// </summary>
/// <param name="controlInstance">Control to which css is to be added or remove</param>
/// <param name="css"> Css class name to be added</param>
/// <param name="bAddClass"> True to Add / false to remove</param>
public static void AddOrRemoveCssClass(this WebControl controlInstance, string css, bool bAddClass)
{
if (bAddClass)
{
controlInstance.AddCssClass(css);
}
else
{
controlInstance.RemoveCssClass(css);
}
}
【讨论】: