locked
Comment désactiver le bouton Submit pendant le traitement des données RRS feed

  • Discussion générale

  • Pour un certain type d’applications web on utilise une page ou on introduit les informations et on les envoie vers le serveur à l’aide d’un bouton Submit. Par exemple, pour des achats en ligne ou pour enregistrer un compte d’utilisateur dans une publication virtuelle.

     

    En fonction de la qualité de sa connexion internet, et aussi du temps nécessaire au serveur pour traiter les données, la réponse durer de quelques secondes a une minute. Dans ce période de temps, l’utilisateur peut essayer d’envoyer les données à nouveau, en cliquant sur le bouton Submit une deuxième fois. Ce type d’actions implique la des mesures supplémentaires de la part du serveur, pour empêcher la duplication des données, deux payements pour la même chose, etc.

     

    Une méthode simple est de désactiver le bouton Submit jusqu’au moment on reçoit la réponse du serveur.

     

    Dans cet exemple on va créer une page web avec un bouton submit. Quand on clique sur le bouton, il devient inactive et il est réactivé au rechargement de la page.

     

    Créez une application web simple et ajoutez un bouton Button1 :

     

    <asp:Button ID="Button1" runat="server" 
    
             Text="Button" 
    
            onclick="Button1_Click1" />
    
    

     

    Maintenant,  ajoutez le code suivant dans la balise <form> de la page Default.aspx:

     

    <form  onsubmit="document.form1.Button1.disabled=true;" id="form1" runat="server">
    
    

     

    Quand l’évènement submit se produit, le bouton Button1 devient inactif.

     

    Ajoutez la méthode Button1_Click1 dans la page de code :

     

     protected void Button1_Click1(object sender, EventArgs e)
    
            {
    
                System.Threading.Thread.Sleep(2000); 
    
            }
    
    

     

    Dans cette méthode on met le code de validation des données. Pour exemplifier le délai, on a utilisé juste la méthode Sleep(2000).

     

     

    Pour plusieurs informations, visitez la page Foire aux Questions – ASP.NET


    Alex Petrescu - MSFT
    mardi 23 mars 2010 13:39
    Modérateur