0

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」の使用は、このコンテキストでは無効です

どんな助けでもありがたいです、ありがとう!

4

1 に答える 1

1

これを試して:

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

    // other stuff here ...
}

UserControl仮想メソッドはありませんが、仮想DataBindメソッドはありますOnDataBinding。これは、オーバーライドする方法だと思います。

于 2009-06-25T14:54:53.127 に答える