... このコードを使用して、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' にキャストできません。
私のバックグラウンドは Ye Olde Pick BASIC であるため、C# や Visual Studio などにはまだ比較的慣れていません。追加または削除できるという最終目標を達成するために、コントロールをキャストする方法、またはコードを修正する方法を簡単に説明してください。既存のクラスを失うことなくクラス。
どうもありがとう!ロス