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# 1.1] Boutons anti stress


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut [C# 1.1] Boutons anti stress
    Bonjour,

    au sein d'une application en production, le client s'est rendu compte que ses utilisateurs cliquaient quelques fois trop vite sur les boutons.

    En gros, il y a 3 boutons sur la page : valider, terminer, abandonner.
    L'action sur le bouton valider est conséquente et peut prendre 2 à 3 minutes.
    Donc lors de l'appui sur le bouton valider, la page se recharge et le code associé au bouton s'effectue.

    Le souci c'est que les utilisateurs peuvent à ce moment appuyer sur terminer ou abandonner, ce qui provoque quelques fois une erreur.

    Je cherches donc une solution qui me permettrait de désactiver tous les boutons suite au déclenchement de l'un d'eux.
    Je pensais au départ m'orienter vers un js mais je ne vois absolument pas comment m'y prendre.

    Auriez-vous une ou deux idées pour m'orienter ou peut-être (et ce serait le rêve) déjà développer quelque chose comme cela?

    Merci d'avance.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 55
    Points
    55
    Par défaut
    dans la fonction appelé par le bouton valider

    tu ajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tonbouton_abandonner.enabled=false
    tonbouton_terminer.enabled=false
    tonbouton_valider.enabled=false
    de façon à désactiver tes boutons
    tu peux aussi ajouter qqchose pour faire patienter les utilisateurs
    voir un de mes ancien message dans le forum

  3. #3
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Lorsque tu parles de fonction, tu parles de fonction js ou code-behind?

    Parce que coté code-behind, il n'y a pas d'attributs sur les boutons pour pouvoir faire enable/disable (de tête)
    Et si j'appelle une fonction js via un onclick je n'atteindrait plus ma fonction code-behind non?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 55
    Points
    55
    Par défaut
    je parle de code-behind, j'ai considéré que tes bouton étaient des contrôle serveur Button
    donc accessibles coté serveur, et si c'est le cas, ils ont bien une propriété Enabled à mettre à true ou false

  5. #5
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Oui je comprend mon bouton est en fait défini comme une surcharge de la classe ImageButton.
    Dans cette classe, le enabled n'existe pas.

    Ce que je vais tenter c'est de surcharger mon constructeur afin d'afficher un js d'attente si je gère mon bouton en anti-stress.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  6. #6
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Je viens de me rendre compte que c'est beaucoup plus compliqué que je ne le pensais

    Je vais essayer de recentrer le sujet.

    J'ai donc un bouton qui est en fait un ImageButton. Je lui affecte un évènement BoutonValider_Click qui valide mon formulaire.

    Lors des différents tests de BoutonValider_Click, je peux demander à l'utilisateur via un js confirm de confirmer ou non son action.

    Si l'utilisateur confirm, je retourne coté serveur (reconstruction de la page) et je recommence mon BoutonValider_Click où mon action longue s'effectue.

    Mon écran s'étant ré-affiché, l'utilisateur peut cliquer de nouveau sur ce bouton ou les autres.

    A la rigueur est-ce qu'il y aurait un moyen simple en 2.0? (possibilité de vendre le changement de framework au client)
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    D'après ce que tu nous racontes, lorsque un utilisateur cliquer sur valider puis directement dans la foulée sur "terminer", ça peut poser un problème. Il ne sert donc à rien d'implémenter "côté serveur" un event qui va gérer l'impatience de tes users.

    Mon écran s'étant ré-affiché, l'utilisateur peut cliquer de nouveau sur ce bouton ou les autres.
    En théorie, si ta page s'affiche c'est que ton code serveur s'est exécuté complètement SAUF si tu nous fais des choses "exotiques".

    Ce qu'il faut faire c'est implémenter une fonction JS qui vérifie qu'une validation n'est pas en cours. En 2.0 tu as l'event OnClientClick() sur les boutons. Tu peux y associer une fonction js du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <script language="javascript">
    ValidationRunning = false;
    function SetValidatingToTrue()
    {
      ValidationRunning = true;
    }
     
    function CheckIfValidating(WarningValidationMessage)
    {
      if(ValidationRunning)
      {
         alert(WarningValidationMessage);
         return false;
      }
    }
    </script>
    Tu associes SetValidatingToTrue à ton bouton "valider" et CheckIfValidating aux autres.

    Si t'es en 1.0, tu n'as qu'à ajouter l'event onclick via les attributs à tes boutons. J'ai rien testé mais c'est une idée comme ça

Discussions similaires

  1. bouton anti rebond
    Par bubu92 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/01/2011, 11h41
  2. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  3. Réponses: 2
    Dernier message: 31/08/2002, 14h00
  4. Bmp pour boutons
    Par Fizgig dans le forum Outils
    Réponses: 5
    Dernier message: 22/08/2002, 10h56
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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