[Resolu] [asp.net 2.0][Ajax] Raffraichissement sur un usercontrol

Bonjour,

Sur une webform, j’ai un updatepanel et plusieurs control dont un usercontrol.
l’updatepanel est conditionné mais dans la liste des trigger , je ne vois pas les methodes de mon usercontrol…?

Sachant que je débute avec les usercontrol, je me dit que les méthodes doivent etre déclaré d’une certaines facons…Non ?
une petite idée ?

merci

[quote=“ElRed, post:1, topic: 33053”]Bonjour,

Sur une webform, j’ai un updatepanel et plusieurs control dont un usercontrol.
l’updatepanel est conditionné mais dans la liste des trigger , je ne vois pas les methodes de mon usercontrol…?

Sachant que je débute avec les usercontrol, je me dit que les méthodes doivent etre déclaré d’une certaines facons…Non ?
une petite idée ?

merci[/quote]

J’ai jamais fait gaffe s’ils peuvent être autre chose que “public”.

[quote=“ElRed, post:1, topic: 33053”]Bonjour,

Sur une webform, j’ai un updatepanel et plusieurs control dont un usercontrol.
l’updatepanel est conditionné mais dans la liste des trigger , je ne vois pas les methodes de mon usercontrol…?

Sachant que je débute avec les usercontrol, je me dit que les méthodes doivent etre déclaré d’une certaines facons…Non ?
une petite idée ?

merci[/quote]

Normalement, tu dois marquer les méthodes que tu veux appeler avec l’attribut [WebMethod], du moins pendant la beta je faisais comme ça B)

Ensuite, je n’ai jamais réussi à faire fonctionner ça dans un UC, il ne trouvait pas la méthode à l’exécution. Par contre, en la plaçant dans la page contenante, ça marchait. J’imagine que lors de son appel, le updatepanel tente de trouver la méthode dans la classe de la page en cours, et ne va pas fouiller en dessous. Peut être que ça a changé entre temps, où que je me suis démerdé comme une bille à l’époque aussi B)

[quote=« BodySplash, post:3, topic: 33053 »]Normalement, tu dois marquer les méthodes que tu veux appeler avec l’attribut [WebMethod], du moins pendant la beta je faisais comme ça B)

Ensuite, je n’ai jamais réussi à faire fonctionner ça dans un UC, il ne trouvait pas la méthode à l’exécution. Par contre, en la plaçant dans la page contenante, ça marchait. J’imagine que lors de son appel, le updatepanel tente de trouver la méthode dans la classe de la page en cours, et ne va pas fouiller en dessous. Peut être que ça a changé entre temps, où que je me suis démerdé comme une bille à l’époque aussi B)[/quote]

Moi je les déclare pas comme ca, et ils apparaissent et tout marche :smiley:

Bon, alors :

  1. dans mon user control, je met un event :

que je declenche dans une methode :

protected void TreeViewSelectChange(object sender, EventArgs e) { TreeViewSelectChange_E(sender, e); }

  1. Dans le Page_Load de ma page qui contient le usercontrol, je m’abonne à l’événement pour mon traitement interne :

Et j’ajoute à mon updatepanel, le déclencheur (iTreeview_Hierarchie est l’ID de l’instance de mon usercontrol dans la page)

AsyncPostBackTrigger trigAsynPostback = new AsyncPostBackTrigger(); trigAsynPostback.ControlID = "iTreeview_Hierarchie"; trigAsynPostback.EventName = "TreeViewSelectChange_E"; this.UpdatePanelDroit.Triggers.Add(trigAsynPostback);

Youpi…Il y a peut etre plus simple mais ca à l’avantage de le faire dynamiquement au cas ou le usercontrol est chargé par un load