Bizzarerie de ASP.Net, button, linkbutton, raiseEvent

chrisisis Messages postés 32 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 2 novembre 2004 - 21 juil. 2004 à 16:49
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 21 juil. 2004 à 20:36
Encore une bizzarerie de ASP.Net

Dans ma page j'ai un control utilisateur uc_art_defaut.ascx
Celui-ci contient un control utilisateur uc_art_new qui permet de créer des articles et de saisir les informations liées à ce nouvel article (titre, résumé, ...) Il contient également un linkbutton btn_valider_new pour sauvegarder ces info et créer une nouvelle ligne d'article dans la base

Structure :
uc_art_defaut

databind
AddHandler oUc_art_new.ValideCreationContenuArticle, AddressOf Uc_art_new_ValideCreationContenuArticle

uc_art_new

btn_valider_new

btn_valider_new.click
RaiseEvent ValideCreationContenuArticle(sTitreArticle, sLangueNewContenuArticle, sResumeArticle)

Dans le databind du control parent, uc_art_defaut, j'associe l'événement ValideCreationContenuArticle du contrôle uc_art_new à la méthode Uc_art_new_ValideCreationContenuArticle

Pour enregistrer les informations dans la base, au click sur le linkbutton btn_valider_new, je lève l'évènement ValideCreationContenuArticle
Le control parent, donc uc_art_defaut capte alors cet évènement.


La bizzarerie, est qu'avec un linkbutton, l'événement est capté 2 fois (d'où un risque de créer un enregistrement en double dans le cas présent)

Si je remplace le linkbutton par un button classique, l'événement est capté 1 seule fois.

Je ne comprend pas pourquoi ?
Que pourrait-il se passer ?
Quelle est la différence entre le linkbutton et le button ?

Merci

1 réponse

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
21 juil. 2004 à 20:36
la difference entre un linkbutton, est qu'un bouton : en HTML c'est une balise de form alors que le linkbutton c'est un simple + une astuce javascript pour genere le postback, puis ecrire dans des champs caché...

j'ai pas trop reflechis au probleme, mais combien de fois est initialisé tes user controls ? tu n'as qu'un seul new UserControl (ou protected Withevents ...) ?

sinon t'as vs.net ? si c'est le cas, tu peux mettre des points d'arret et meme l'executer en mode pas à pas, essaye ca, et regarde chaque etape, tu trouveras peut etre la reponse à la question.

comme ca je vois pas trop :(

@+

Cyril
0
Rejoignez-nous