IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Chargement dynamique de User Control et Evenements


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut Chargement dynamique de User Control et Evenements
    Bonjour,

    J'ai un petit souci lors de mon chargement de mon userControl sur ma page . Mon controle est un conteneur qui est utilisé dans plusieurs pages. J'ai une page Contact.aspx qui utilise ce conteneur et qui contient un formulaire avec un évenement sur le bouton d'envoie. Ce bouton (LinkButton) déclenche un évenement qui récupère les infos du formulaire et les envoie par mail ensuite à un destinataire.

    Le souci c'est que lorsque je charge mon contrôle , les évènements ne sont jamais pris en compte .

    Voici la classe du User contrôl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     protected override void CreateChildControls()
            {
                Controls.Clear();
                Control articleMarkup = Page.LoadControl("~/Design/Article.ascx");
     
                _headerPlaceholder = articleMarkup.FindControl("HeaderPlaceholder") as PlaceHolder;
                _contentPlaceholder = articleMarkup.FindControl("ContentPlaceholder") as PlaceHolder;
     
                _headerPlaceholder.Visible = ! String.IsNullOrEmpty(_caption);
     
                if (_headerPlaceholder.Visible)
                {
                    Literal caption = new Literal();
                    caption.Text = _caption;
                    _headerPlaceholder.Controls.Add(caption);
                }
     
                if (_contentTemplate != null)
                {
                    TemplateContainer container = new TemplateContainer();
                    _contentTemplate.InstantiateIn(container);
                    _contentPlaceholder.Controls.Add(container);
                }
     
                Controls.Add(articleMarkup);
            }
     
            public override void DataBind()
            {
                EnsureChildControls();
                base.DataBind();
            }
    La page Aspx qui contient le contrôle avec l'Event.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:LinkButton runat="server" ID="EnvoyerLinkButton" Text="Envoyer" Font-Bold="true"
                                    OnClick="EnvoyerLinkButton_Click"/></div>
    En debuggant , je rentre dans le CreateChildControl() qui supprime tout les contrôles de la page et recharge ensuite en loadant mon user Control.


    Au runtime , j'analyse le code source de la page et je vois que mon event n'apparait pas dans le rendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <a id="ctl00_SheetContentPlaceHolder_ctl00_ctl00_EnvoyerLinkButton" href="javascript:__doPostBack('ctl00$SheetContentPlaceHolder$ctl00$ctl00$EnvoyerLinkButton','')" style="font-weight:bold;">Envoyer</a></div>
                        </td>
    Si quelqu'un connait la solution à ce problème , je suis preneur . J'ai vérifier du côté des EventHandlerList du contrôle mais aucun signe de mon event.

    Merci.

  2. #2
    Membre confirmé Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Re,

    J'ai trouvé la solution dans la MSDN .

    Pour ceux à qui ca intéresse , voici le lien

    => http://msdn.microsoft.com/fr-fr/library/aa479330.aspx

    En effet , les ajouts dynamiques de contrôles imposent aux développeurs d'assigner à chaque chargement du contrôle d'y attacher les évenements à chaques initialisations de ceux ci . (cfr Msdn)

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evenement User Control
    Par dreamkill dans le forum C#
    Réponses: 2
    Dernier message: 19/06/2009, 10h34
  2. evenement dans user control
    Par nashouille dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/05/2008, 11h19
  3. Ajout dynamique de user Control
    Par Dude1205 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/08/2007, 12h34
  4. Chargement web user control
    Par xeon666 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/04/2007, 08h59
  5. [WebForms]Probleme de user control créé dynamiquement
    Par Kurukuru dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 04/01/2007, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo