IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Empecher 2 clics d'affilé sur un bouton runat="server"


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [C#] Empecher 2 clics d'affilé sur un bouton runat="server"
    Bonjour à tous, j'ai un petit souci avec un bouton RUNAT=SERVER qui est dans ma page ASP.NET. En effet, j'aimerais le bloquer (Enabled = true) dès que l'utilisateur a cliqué UNE SEUL FOIS dessus, mais vu que l'accès au serveur est un peu trop long, l'utilisateur peut cliquer plein de fois et ainsi lancer le code du bouton autant de fois...y'a t'il moyen de combiner du code client pour le bloquer apres un clic et le réactiver une fois que la procédure du côté serveur a fini son traitement ?

    merci de votre aide

    Vince

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    trouvé sur le net, je gardai ce code au cas où ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("if (typeof(Page_ClientValidate) == 'function') { ");
        sb.Append("if (Page_ClientValidate() == false) { return false; }} ");
        sb.Append("this.value = 'Please wait...';");
        sb.Append("this.disabled = true;");
        sb.Append(this.Page.GetPostBackEventReference(this.Button1));
        sb.Append(";");
        this.Button1.Attributes.Add("onclick", sb.ToString());
    jamais testé

  3. #3
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    C'est exactement ce qu'il faut faire...

    Passer par du javascript pour faire un disable sur le bouton.

    Effectivement, cela ne peut se passer que du côté client et pas serveur puisqu'on ... est pas encore sur le serveur

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci mais comment faire ?

    Voici le code de mon bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Button id="BtValiderEtatDI" cssClass="Button" runat="server" Text="Valider" OnClick="BtValiderEtatDI_Click"></asp:Button>
    J'ai essayé un truc comme ça mais ça plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Button id="BtValiderEtatDI" cssClass="Button" runat="server" Text="Valider" OnClick="document.getElementById('<%=BtValiderEtatDi.ClientID%>').enabled=false;BtValiderEtatDI_Click"></asp:Button>

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut mon avis
    déjà il faut ajouter l'évènement à chaque chargement de la page (dans la messure où le button est visible).

    plusieurs moyens: page load de page, évènement load du textbox ... il faut peut être modifier légèrement le code pour l'adapter au nom de ton button.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci encore

    J'ai trouvé une solution, dans le page_load effectivement, placé ce code pour un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BtValiderEtatDI.Attributes.Add("OnClick","document.forms[0]['BtValiderEtatDI'].style.visibility='hidden';");
    Une fois validé, le bouton se cache, la procédure serveur s'éxécute, la page se recharge et le bouton réapparait

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WPF] Empecher le clic sur une fenêtre
    Par Johngtrs dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 13/12/2012, 02h39
  2. Empecher le clic sur un bouton
    Par hugo7 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 20/12/2008, 21h05
  3. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo