0 votes

Comment avoir un seul UserControl ajouté à baseform mais avec des gestionnaires d'événements différents pour le même événement dans les pages héritées?

Ceci est la configuration de mon application :

J'ai un dossier UserControls dans mon application, à l'intérieur duquel se trouve mon fichier .ascx qui contient simplement un bouton ASP. Je n'ai ajouté aucun code dans le code-behind du fichier ascx.

J'ai un BaseForm.cs (juste un fichier de classe C# et PAS un fichier aspx) qui hérite de System.Web.UI.Page

public class BaseForm : System.Web.UI.Page {
    protected override void OnInit(EventArgs e)
    {
        UserControls.UserButton1 ObjUserControls=(UserControls.UserButton1)LoadControl("~/UserControls/UserButton1.ascx");
        ObjUserControls.ID = "UserControl1";
        this.Form.Controls.Add(ObjUserControls);
        base.OnInit(e);
    }
}

Maintenant, j'aurai des pages ASPX telles que : ChildPage1.aspx et ChildPage2.aspx qui hériteront de baseform et non de System.Web.UI.Page (évidemment).

Ce que je veux savoir, c'est comment écrire une implémentation différente dans chaque ChildPage pour un événement appartenant à l'UserControl. C'est-à-dire, par exemple, je veux exécuter ChildPage1ClickEventHandler pour l'événement Click du bouton dans ChildPage1.aspx et ChildPage2ClickEventHandler pour l'événement Click du bouton dans ChildPage2.aspx

Comment puis-je procéder ? Veuillez m'aider.

0voto

Sandeep Points 72

Ha, une autre question ouverte de la mienne.

C'était il y a un certain temps et bien que je ne me souvienne pas exactement du scénario, je sais ce que je cherchais ce jour-là.

Comme je l'ai compris un peu plus tard, ce que vous devez faire est d'exposer l'événement (clic ou tout autre événement pour ce contrôle utilisateur) puis attacher des gestionnaires d'événements à celui-ci dans les pages enfants.

L'autre façon de le faire est d'utiliser des délégués je crois (déléguer la gestion de l'événement de clic du contrôle utilisateur de la page utilisateur à la page enfant où vous souhaitez le gérer)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X