Je souhaite qu'un service Web charge un contrôle .ascx, y charge des valeurs, puis renvoie le contenu HTML de ce contrôle. J'ai quelque chose comme ça:ASP.NET LoadControl L'utilisation du mot clé 'base' n'est pas valide dans ce contexte
[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 remplace DataBind()
:
public override void DataBind()
{
base.DataBind();
// etc.
}
La ligne base.DataBind()
jette un NullReferenceException
et le débogueur dit:
utilisation du mot-clé 'base' est pas valide dans ce contexte
Toute aide sera appréciée, merci!
10x Andrew, de cette façon, il ne plante pas à base.OnDataBinding(); Cependant, je pense que cela change la signification du code. MyCustomReport a des sous-contrôles, avec un override similaire - avant, le base.DataBind(); conduit à leur liaison de données, maintenant leurs OnDataBinding() ne sont pas appelés. Le même contrôle fonctionne, lorsqu'il est placé directement dans un fichier .aspx, le problème semble être la façon dont je le charge dans le service Web, mais je ne peux pas savoir exactement ce qui ne va pas. – user128873