Magazine Internet

[ASP] Utiliser conjointement un event TextChanged et un Click?

Publié le 06 novembre 2008 par Jeremy.jeanson

Certain aspect d’ASP.net peuvent choquer les adeptes de WinForm, le posback d’un formulaire par exemple… comment réagir quand on veut utiliser sur un même formulaire des TextBox, un Button et que l’on souhaite declancher le changements ou insertion en BDD sur Click du Button ou TextChanged du Textbox. Nos deux events on la même signature donc on peut les brancher sur la même méthode, cool :).

Mais, au premier jet, le résultat est déconcertant si notre texte a changé et que l’on click sur notre bouton!

Pourquoi? Et bien tout simplement car quand on change le texte sans avoir mis un AutoPostback sur notre Textbox, il n’y a pas de PostBack… Logique en fait, mais alors quand je click sur mon bouton, pourquoi mon action se déclanche 2 fois.

Si on veut à tout prix ne pas utiliser AutoPostback et garder la notion de “sender” afin de déterminer l’appelant de la méthode il reste une astuce toute simple : limiter l’accès au code.

Petit exemple :
private Boolean jobDone;

private void MonEvent(object sender, EventArgs e)
{
    if (jobDone) return;
    jobDone = true;
    Label1.Text += sender.ToString() + "
"; }

Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par frederic
posté le 04 mai à 17:27
Signaler un abus

Je trouve votre article intéressant mais je ne comprends pas où ajouter le code exactement. merci!

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte