Vous ne devriez pas écrire un contrôle qui repose sur une méthode se trouvant sur la page, donc la meilleure chose à faire serait d'exposer et gérer un événement du contrôle enfant. Ajoutez ce qui suit à votre contrôle enfant:
public event OnSomethingHandler Something;
public delegate void OnSomethingHandler(ChildControl sender);
Puis, quand vous voulez tirer la méthode de page en question, le feu de l'événement:
public void FireParentMethod()
{
if (Something != null)
{
Something(this);
}
}
Tout ce que vous devez faire est de gérer l'événement sur la page (dans le balisage ou dans le code comme suit):
childUserControl.Something+=
new ChildControl.OnSomethingHandler(ChildControl_OnSomething);
et ajoutez le gestionnaire au code derrière:
protected void ChildControl_OnSomething(ChildControl sender)
{
FirePageMethod();
}
WinForms, WPF, ASP.NET, ...? –
ASP.Net Je suppose à partir de 'LoadControl' et' Page'. – GenericTypeTea