none
Cacher le bouton actif RRS feed

  • Question

  • Bonjour tout le monde,

    Je suis en train de travailler sur un envoi de mail, il y a un fil pour ça.

    L'envoi de mail mettant un certain temps à réagir, il serait bien qu'il y ait immédiatement une modification sur l'interface pour accuser réception du clic sur le bouton, sinon l'utilisateur va continuer à cliquer comme un malade, et un système de mail qui était déjà débordé au départ va être carrément saturé.

    Autant j'arrive facilement à ajouter un Label qui change de couleur à droite, autant faire disparaître le bouton n'est pas évident.

    En WinForm il est courant que si on veut faire disparaître un bouton, il faut commencer par sélectionner un autre contrôle, puisqu'on ne peut pas cacher le contrôle actif.

    En WebForm, il me semble donc que ça devrait donner quelque chose comme ça :

    protected void Page_Preload(object sender, EventArgs e)
    {
    	if (IsPostBack && booPost)
    	{
    		txbToAddress.Focus();
    		Label1.Text = "post";
    		Label1.BackColor = System.Drawing.Color.Red;
    		btnSendEmail.Visible = false;
    		SendEmail();
    	}
    }


    étant entendu que le bouton a initié la variable booléenne booPost.

    Au départ je n'étais pas trop mécontent de l'idée, mais ... il faut bien constater que le bouton est toujours là.

    Ai-je loupé quelque chose ?

    À la fin de la procédure de mail, un Label en dessous reçoit le message d'erreur, ou affiche mail envoyé. Enfin ... Le Pre_Load c'est pour modifier l'aspect des contrôles, si on veut retourner un message il vaudra mieux lancer l'envoi de mail dans le Pre_Render.

    Exception.Message donne quelque chose de simple à fournir comme message d'erreur, il peut toutefois être bon de prévoir quelque chose qui délivre moins d'informations pas indispensables.




    • Modifié Gloops lundi 6 septembre 2021 12:01
    lundi 6 septembre 2021 11:06

Toutes les réponses