...我正在尝试使用此代码向我的 ASP 控件动态添加或删除类(我通过我的伟大结对编程朋友找到的,他被称为“Mr G”)
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());
}
}
不幸的是,我找不到将我的 HtmlGenericControls 传递给他们的方法......我已经尝试了显而易见的方法:
WebControl test1 = (WebControl)Page.FindControl("divcontent");
WebHelper.AddCssClass(test1, centredClass);
但我得到:System.InvalidCastException:无法将“System.Web.UI.HtmlControls.HtmlGenericControl”类型的对象转换为“System.Web.UI.WebControls.WebControl”。
我在 C#、Visual Studio 等方面仍然相对缺乏经验,因为我的背景是 Ye Olde Pick BASIC,所以请简单解释一下我是如何进行控制或修改代码以实现能够添加或删除的最终目标类而不丢失任何现有的类。
非常感谢!罗斯