2010-07-12 10 views
0

Ceci est la configuration de mon application:Comment ajouter un seul UserControl à baseform mais avec des gestionnaires d'événements différents pour le même événement dans les pages d'héritage?

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

J'ai un BaseForm.cs (juste un fichier C# classe et pas un fichier ASPX) qui est héritant 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, je vais avoir ASPX pages telles que: ChildPage1.aspx et ChildPage2.aspx qui hériteront de la 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 à UserControl. Par exemple, je souhaite exécuter ChildPage1ClickEventHandler pour l'événement Button Click dans ChildPage1.aspx et ChildPage2ClickEventHandler pour l'événement Button Click dans ChildPage2.aspx

Comment procéder? S'il vous plaît aider.

+0

Pourquoi voulez-vous gérer le clic événement sur la page? Y a-t-il un autre problème que vous ne pouvez pas comprendre et que vous essayez d'éviter en faisant cela? – TheGeekYouNeed

+0

Nopes. C'est comme ça - nous ajoutons une commande usercontrol à une baseform. Beaucoup de pages hériteront de la baseform et hériteront donc aussi de la commande usercontrol. Maintenant j'ai un bouton dans la commande usercontrol .. et bien que je puisse bien sûr trouver le contrôle sur chaque page et ajouter un gestionnaire d'événement pour le bouton dans chaque page, je me demandais s'il y avait quelque chose de plus simple ou plus façon de le faire "que cela. Chaque page héritière devra avoir une fonctionnalité différente pour ce bouton. C'est la conception de l'application. – Sandeep

Répondre

0

Ha, une autre question ouverte à moi.

C'était il y a quelque temps et même si je ne me souviens 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 avez à faire est d'exposer l'événement (clic ou tout autre événement pour ce contrôle de l'utilisateur), puis d'y attacher des gestionnaires d'événements dans les pages enfants.

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