我希望通过创建动态GetControl方法来节省一些编码。我的想法是这样的

private T GetControl<T>(ASPxGridView control, string element)
{
    var returnedElement = (T)control.FindEditFormTemplateControl(element);
    return returnedElement;
}


我打电话给

var myElement = GetControl<ASPxTextBox>(myGridView, "UserId");


但是,这不幸地失败了:


  无法将类型“ System.Web.UI.Control”转换为“ T”


有什么建议吗?

最佳答案

尝试添加通用约束:

private T GetControl<T>(ASPxGridView control, string element) where T : Control
{
    var returnedElement = (T)control.FindEditFormTemplateControl(element);
    return returnedElement;
}

09-25 20:44