ASP.NET LoadControl在此上下文中使用关键字“base”无效

时间:2009-06-25 14:51:13

标签: c# asp.net user-controls loadcontrol

我希望Web服务加载.ascx控件,在其中加载一些值,然后返回此控件的HTML内容。我有类似的东西:

[WebMethod(EnableSession = true)]
public void GetHTML()
{
    UserControl loader = new UserControl();
    MyCustomReport reportControl =
        (MyCustomReport)loader.LoadControl("~/The/path/to/the/.ascx");
    reportControl.DataBind();

    return "TODO";
}

MyCustomReport会覆盖DataBind()

public override void DataBind()
{
    base.DataBind();

    // etc.
}

base.DataBind()抛出NullReferenceException,调试器说:

  

在此上下文中使用关键字“base”无效

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

public override void OnDataBinding() 
{ 
    base.OnDataBinding(); 

    // other stuff here ...
}

UserControl没有虚拟DataBind方法,但它确实有虚拟OnDataBinding方法。我相信这是你要覆盖的方法。