0
我想要一个Web服务来加载.ascx控件,加载一些值,然后返回此控件的HTML内容。我有类似的东西:ASP.NET LoadControl使用关键字'base'在此上下文中无效
[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
和调试器说:
使用关键字 '基地' 的无效在这方面
任何帮助将不胜感激,谢谢!
10x Andrew,这样它不会在base.OnDataBinding();上崩溃。不过我认为这改变了代码的含义。 MyCustomReport具有子控件,具有类似的重写 - 之前,base.DataBind();导致他们的数据绑定,现在他们的OnDataBinding()不会被调用。 相同的控件在直接放入.aspx文件时起作用,问题似乎是我在Web服务中加载它的方式,但我无法确切地知道什么是错误的。 – user128873 2009-06-25 15:46:53