ASP.net将FindControl输出转换为参数

时间:2016-03-16 08:25:41

标签: asp.net casting webforms findcontrol dynamic-controls

我想将FindControl方法的输出强制转换为特定类型的控件,但我希望类型本身作为参数传递。我第一次尝试:

public static List<T> GetList<T>(..., Type tp, ...)
{
...
tp castedCtrl = (panel.FindControl(ctrlPrefixName + i.ToString()) as tp);
...
}

这是我的首选结果,但根本不编译。 我也尝试过:

dynamic castedCtrl = Convert.ChangeType(panel.FindControl(ctrlPrefixName + i.ToString()), tp);

但是这需要我所有的tp实现IConvertible接口,这是不需要的,需要很多意想不到的工作。

如何将FindControl输出的输出转换为我想要的类型(在操作中我想传递用户控件类的名称)。

1 个答案:

答案 0 :(得分:1)

你走了:

input type="date"

为了使用它:

public static List<T> GetList<T, U>(Page page, string ctrlPrefixName) 
   where T : class 
   where U : Control
{
   int i = 1;
   U castedCtrl = page.FindControl(ctrlPrefixName + i.ToString()) as U;
   return new List<T>();
}