Gastaropod
Messages postés10Date d'inscriptionvendredi 30 novembre 2007StatutMembreDernière intervention26 juin 2008
-
25 juin 2008 à 10:43
Gastaropod
Messages postés10Date d'inscriptionvendredi 30 novembre 2007StatutMembreDernière intervention26 juin 2008
-
27 juin 2008 à 09:30
Bon, j'ai un soucis assez déroutant.
Pour mieux me faire comprendre, je vais expliquer le cheminement que parcoure mon appli afin que ce soit plus explicite.
En gros j'ai créé un système de messagerie interne pour un site web. Chaque utilisateur peut consulter ses messages, les supprimer etc. le tout ponctué d'AJAX (UpdatePanel).
Je crée dans le code serveur (Messages.aspx.vb, oui, je code en VB.net au passage :p) tous mes contrôles dynamiquement. Pour chaque messsage, je crée une mini table comprenant nom de l'utilisateur ayant envoyé le message, titre du message, un bouton pour ouvrir le message, et un CheckBox pour le selectionner (pour le supprimer ou autres options).
J'ai un contrôle principal que je met dans ma page .aspx, il s'agit d'un simple Panel, composant asp.
Lorsque je clique sur le bouton "ouvrir", je mémorise en variable de session le fait que l'utilisateur souhaite ouvrir son message (un booléen), et l'index du message ouvert en récupérant l'id du bouton.
L'évennement page_load est déclenché, mes tables sont recréées, et se voit ajouté un nouveau contrôle (lui-même un Panel), comprenant le message en lui-même, ainsi que certains boutons en fonction du type de message. Un bouton revient toujours, il s'agit du bouton "Fermer" (que je conserverais en exemple pour expliquer).
Comme il s'agit toujours des mêmes boutons, et qu'un seul message ne peut être ouvert à la fois, j'ai créé ces boutons en données membre, pour plus de simplicité, puis ai ajouté les évennements par AddHandler dans le load, sans quoi ils ne sont pas affiliés.
Mon problème apparaît après avoir cliqué sur le bouton "Ouvrir". Dès lors que j'ajoute (dans l'évennement lié à "Ouvrir") le contrôle comprenant le texte du message et les nouveaux boutons, le navigateur m'annonce qu'il y a des erreurs sur la page, et mon évennement n'est pas déclenché.
Je ne pense pas qu'il s'agisse du fait que mes évennements ne soient pas liés proprement, mais plutôt une erreur dans l'ajax, ou la création de mes contrôles.
Je m'arrache pas mal les cheveux, d'autant plus qu'il n'y a pas vraiment moyen de détecter d'où vient le problème, si ce n'est par alertes javasript, mais sachant que l'ajax que j'utilise (UpdatePanel) est du code généré par VS, je ne vois pas vraiment comment m'en sortir...
En attendant avec impatience vos réponses, je vous salue!
Gastaropod
Gastaropod
Messages postés10Date d'inscriptionvendredi 30 novembre 2007StatutMembreDernière intervention26 juin 2008 25 juin 2008 à 10:46
Oui, j'ai oublié de préciser que mon problème vient lorsque j'ai déjà ouvert mon message, et que je souhaite cliquer sur un des boutons dans le message (bouton fermer par exemple).
Il me semble même que tous les boutons sont buggés dès lors que j'ai cliqué sur "Ouvrir" d'un des messages.
Gastaropod
Messages postés10Date d'inscriptionvendredi 30 novembre 2007StatutMembreDernière intervention26 juin 2008 27 juin 2008 à 09:30
Le soucis c'est que je ne sais pas exactement pourquoi le navigateur signale une erreur.
L'erreur est signalée au moment où je clique sur un bouton qui a été ajouté après avoir déclenché un évènnement.
J'ai bien mes AddHandler dans le load mais a toujours généré une erreur.
Donc j'ai ouvert mes messages autrement, un peu comme on voit de plus en plus en ce moment pour ouvrir une photo : on voit le site, mais par dessus se colle un div qui prend toute la place sur la page, avec un fond noir avec opacité à 50%, et le message dans un div au fond blanc par dessus.
Je trouve ça sympa, et moins prise de tête puisque ça marche comme ça avec ajax :p
Pour info, j'ai une idée d'où venait l'erreur que finalement je n'ai pas résolue mais détournée, il y avait des AddHandler, et des New Button (alors que mes boutons sont des données membres) dans l'évennement déclenché par le premier bouton. Peut être que ça venait de là...