Bonjour,
comment recuperer dans ma page, un event (clique sur un bouton) qui s'est produit dans le control?
Merci
Version imprimable
Bonjour,
comment recuperer dans ma page, un event (clique sur un bouton) qui s'est produit dans le control?
Merci
Je vais essayer détre plus explicite:
J'ai fais un control utilisateur qui me servira de formulaire. Je l'ai appelé: FormulaireControl.
Ce formulaire, comme tout formulaire digne de son nom contient un bouton pour valider les données (appelé ValidateButton).
-Voici son code aspx:
-Ainsi que le code .cs (code beside corepondant):Code:
1
2 <asp:Button ID="ValidateButton" runat="server" onclick="ValidateButton_Click" Text="Validate" />
Ici donc, lorsque le boutton est cliqué, l'event est lancé (pour pouvoir etre recuperer dans ma WebForm).Code:
1
2
3
4
5
6 public event EventHandler ButtonClicked; // protected void ValidateButton_Click(object sender, EventArgs e) { if (ButtonClicked != null) ButtonClicked(this, EventArgs.Empty); }
Dans la webForm (appelé: WebForm1), je place mon control.
Pour faire ainsi, j'ai donc, dans WebForm1.aspx, inserer les lignes de code suivantes:
et dans mon code beside:Code:
1
2
3 <%@ Register TagPrefix="uc" TagName="Form" Src="~/ControlFormulaire.ascx"%> <uc:Form ID="SubscribForm" runat="Server" MinVal="1" MaxVal="10" />
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 protected void Page_Load(object sender, EventArgs e) { ControlFormulaire ctrl = new ControlFormulaire(); Controls.Add(ctrl); ctrl.ButtonClicked += new EventHandler(ValidateButton_Click); //ici je fais donc "la glue" entre mon userControl et ma Webform. //Et, en cas de bouton cliqué, je declanche le delegué: ValidateButton_Click. } private void ValidateButton_Click(object sender, EventArgs e) { Response.Redirect("WebForm2.aspx"); }
Maintenant.....
Le probleme avec tout ca, cést que ca ne marche pas.
En fait, le thread ne rentre jamais dans cette partie du code:
A l'aide síou plait :)Code:
1
2
3
4
5 protected void ValidateButton_Click(object sender, EventArgs e) { if (ButtonClicked != null) ButtonClicked(this, EventArgs.Empty); }
J'ai essayé ceci aussi, mais ca ne marche pas nonplus:
Code:
1
2
3
4
5
6 protected ControlFormulaire ctrl; protected void Page_Load(object sender, EventArgs e) { ctrl = this.SubscribForm; this.ctrl.ButtonClicked += new EventHandler(ValidateButton_Click); // name of the event handler in your form that's called once you click the button }
Excuse mon ignorance, mais que dois-je donc faire pour palier ce probleme?
J'ai essayé ajouter
mais ca ne marche toujours pasCode:
1
2
3
4
5
6
7 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { SubscribForm.ButtonClicked += new EventHandler(SubscribForm_ButtonClicked); } }