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 :
La page Aspx qui contient le contrôle avec l'Event.
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(); }
En debuggant , je rentre dans le CreateChildControl() qui supprime tout les contrôles de la page et recharge ensuite en loadant mon user Control.
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>
Au runtime , j'analyse le code source de la page et je vois que mon event n'apparait pas dans le rendu :
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.
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>
Merci.
Partager