2010-09-26 8 views
2

Bonjour J'ai un problème étrange. J'ai un contrôle utilisateur que je charge dinamycally en utilisant LoadControl. Dans ce UserControl j'ai un bouton auquel on a assigné l'événement OnClick, mais quand je clique sur ce bouton, l'événement n'est pas déclenché.Les événements de contrôle imbriqués ne se déclenchent pas dans UserControl

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ServiceInput.ascx.cs" 
Inherits="uPay.UserControls.ServiceInputs.ServiceInput" ViewStateMode="Disabled" %> 
    <div class="PopupFoot"> 
     <asp:Button ID="btnAdd" CssClass="PopupADD" runat="server" OnClick="btnAdd_Click" /> 
    </div> 

    protected void btnAdd_Click(object sender, EventArgs e) 
    { 
     //Method never gets called :/ 
    } 

Ici, je contrôle de charge de l'utilisateur dans la page

protected void ServicesUpdatePanel_Load(object sender, EventArgs e) 
{ 
     string arg = Request.Params.Get("__EVENTARGUMENT"); 
     if (arg == "ServiceInput") 
     { 
      int serviceId; 
      if (Int32.TryParse(hdnSelectedService.Value, out serviceId)) 
      { 
       using (Entities db = new Entities()) 
       { 
        LocalizedServiceRecord service = db.ServiceRecords.OfType<LocalizedServiceRecord>().FirstOrDefault(s => s.Id == serviceId && s.Language.Id == CurrentLanguage.Id); 
        lblPopupTitle.Text = service.Name; 
        ServiceInputBase serviceInput = LoadInputControl(service); 
        InputServicePlaceHolder.Controls.Add(serviceInput); 
        ServicesUpdatePanel.Update(); 
       } 
      } 
     } 
} 

    private ServiceInputBase LoadInputControl(ServiceRecord service) 
    { 
     ServiceInputBase serviceInput = LoadControl("~/UserControls/ServiceInputs/ServiceInput.ascx") as ServiceInputBase; 

     return serviceInput; 
    } 

Toute idée?

+0

Vous devriez probablement exposer ce gestionnaire de clic btnAdd en tant que délégué, et vous y abonner dans la page où vous l'utilisez. – RPM1984

Répondre

4

Longtemps maintenant, mais peut-être que quelqu'un le trouvera utile. Le problème était que lorsque je cliquais btnAdd, cela provoquait une publication, et avant qu'il ne puisse déclencher btnAdd_Click, le contrôle utilisateur était déjà détruit.

La solution à ce problème consiste à recréer le contrôle usercontrol sur la publication.

+0

Été un certain temps puisque cela a été posté mais il m'a aidé! –

+0

Content d'entendre Mike;) – Davita