Bonjour à tous,
J'ai un problème assez complexe avec les événements pour la création d'une WebPart :
En gros jusqu'ici je programmais sans événements, et tout marchait très bien ( ou presque ).
J'ai essayé de mettre un événement en place sur un bouton, et voilà mon problème :
L'événement se déclenche tout seul sans que l'on clique sur le bouton.Du coup, j'ai essayé de mettre l'événement en commentaire dans mon code ( comme si je le supprimais ), et de relancer ma page : rien n'y fait, l'évent est toujours déclenché sans que je ne fasse rien.
Je me suis donc dit que ma page ne chargeait plus mon code pour X raison, et que je devais avoir un problème au niveau de l'assembly ou autre : QUE NENNI ! Lorsque je change l'event ( l'event à la base est censé changer la couleur du background de la table HTML de ma Webpart ), par exemple je change la couleur, et que je recharge tout, ma page s'affiche avec la nouvelle couleur de l'event ( alors que je n'ai toujours pas cliqué sur le bouton ).
Pour résumer, psq j'ai pas l'impression d'avoir été hyper clair : un event lié à un button se déclenche seul sans que je clique sur le bouton, si j'enlève le code de l'event, c'est la même chose, et par contre si je garde le code de l'event mais je change l'event lui même, à ce moment là ma modification est prise en compte et event se déclenche tout seul mais avec les nouvelles propriétés que je lui ai demandé.
Quelqu'un a déjà eu ce genre de problème ?
Je vous donne le code :
Bon il manque peut être une ou deux accolades ( j'ai trié le code pour pas tout mettre, c'est déjà assez indigeste comme ça ) mais c'est l'idée.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 namespace SharepointLibrary.WebParts { using System; using System.Runtime.InteropServices; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Serialization; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using Microsoft.SharePoint.WebPartPages; using System.Collections.Generic; using System.Web.UI.HtmlControls; using System.Web; using System.Drawing; public delegate string fct_delegue(int a, int b); [Guid("ed318684-4473-473a-8444-a392c7b1fdf3")] public class EnteteFormulaire : Microsoft.SharePoint.WebPartPages.WebPart { ...//code sans lien avec le problème #region Events public event fct_delegue SelectName; #endregion #region Properties public bool Verif { get; set; } private HtmlTable TableHtml { get; set; } private HtmlButton Validation { get; set; } #endregion protected override void CreateChildControls() { TableHtml = new HtmlTable(); Validation = new HtmlButton(); if (HttpContext.Current.User.Identity.IsAuthenticated ) { row = new HtmlTableRow(); var col1row7 = new HtmlTableCell(); Validation.ServerClick += new EventHandler(buttest_ServerClick); Validation.InnerText = Context.Server.HtmlEncode(Guid.NewGuid().ToString()); col1row7.Controls.Add(Validation); row.Cells.Add(col1row7); rows.Add(row); foreach(HtmlTableRow rowTmp in rows) TableHtml.Rows.Add(rowTmp); } TableHtml.BgColor = Color.CadetBlue.Name; TableHtml.CellSpacing=10; //On ajoute la table dans la WebPart Controls.Add(TableHtml); } void buttest_ServerClick(object sender, EventArgs e) { Validation.InnerText = "nouveau L"; TableHtml.BgColor = Color.Blue.Name; } #endregion }
Merci déjà de m'avoir lu
Bon code à vous, Horn33t.
Partager