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 :

Disable bouton sur click avec validation


Sujet :

ASP.NET

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    F�vrier 2004
    Messages
    77
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 77
    Par d�faut Disable bouton sur click avec validation
    Bonjour

    j'ai un soucis en asp.net.

    J'aimerais qu'un bouton ait le comportement suivant :

    Lorsque l'utilisateur clique dessus, le curseur passe en sablier et le bouton est disabled (le bouton lance un traitement de quelques secondes et �videmment les utilisateurs press�s aiment appuyer sur le bouton plein de fois pour que �a aille plus vite )

    En fouinant sur le net, je suis arriv� � la solution suivante :

    J'ai sous-class� Button et surcharg� la m�thode Render de la fa�on suivante:

    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
     
        public class MyBtCreate : System.Web.UI.WebControls.Button
        {
            private ClientScriptManager csm;
            public ClientScriptManager ClientScript
            {
                set { csm = value; }
                get { return csm; }
            }
            protected override void Render(HtmlTextWriter writer)
            {
                this.Attributes["onclick"] = "document.body.style.cursor = 'wait'; this.disabled = true; " + csm.GetPostBackEventReference(this, "", true) + ";";
                base.Render(writer);
            }
        }
    et je set la propri�t� ClientScriptManager dans le PageLoad.

    Ca fonctionne bien, � un b�mol pr�t, la validation caus� normalement par le bouton ne fonctionne plus.
    J'ai 4 champs obligatoires et 4 contr�les RequiredFieldValidator qui vont avec, le clic sur le bouton les ignore depuis cette modification.

    Je pensais qu'en mettant "true" en 3�me argument � mon GetPostBackEventReference() �a enclencherait la validation mais je ne suis pas sur d'avoir compris de quelle validation on parle ici.

    Quelqu'un peut-il �clairer ma lanterne ?

    Merci d'avance

  2. #2
    R�dacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par d�faut
    La validation est li�e � l'�v�nement onclick. Donc je pense que la ligne suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    this.Attributes["onclick"] = "document.body.style.cursor = 'wait';
    "supprime" l'appel aux validateurs.

  3. #3
    Expert confirm�

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Architecte technique
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par d�faut
    Salut,

    comme tu utilises un bouton, tu devrais plutot utiliser OnclientClick
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    this.OnclientClick = "document.body.style.cursor = 'wait'; this.disabled = true; "

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer � la rubrique .NET ? Contactez-moi par MP.
    Vous voulez r�diger des articles pour la rubrique .NET ? Voici la proc�dure � suivre.

  4. #4
    Membre confirm�
    Inscrit en
    F�vrier 2004
    Messages
    77
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 77
    Par d�faut
    Salut

    merci pour vos r�ponses, j'ai trouv� une solution sur le net, je n'avais pas bien cherch� il faut croire en tout cas �a marche super bien.

    On fait ce qu'on veut avec le bouton et �a passe bien par la validation de la page au pr�alable donc c'est exactement ce que je cherchais.

    Il suffit de rajouter le code suivant dans le Page_Load (par exemple):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                System.Text.StringBuilder sbValid = new System.Text.StringBuilder();
                sbValid.Append("if (typeof(Page_ClientValidate) == 'function') { ");
                sbValid.Append("if (Page_ClientValidate() == false) { return false; }} ");
                sbValid.Append("this.value = '...';");
                sbValid.Append("this.disabled = true;");
                sbValid.Append("document.all.BtCreateWorkspace.disabled = true;");
                //GetPostBackEventReference obtains a reference to a client-side script function that causes the server to post back to the page.
                PostBackOptions opt = new PostBackOptions(this.BtCreateWorkspace);            
                sbValid.Append(this.Page.ClientScript.GetPostBackEventReference(opt));
                sbValid.Append(";");
                this.BtCreateWorkspace.Attributes.Add("onclick", sbValid.ToString());

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [XL-2007] Activer d�sactiver bouton sur feuille avec condition
    Par cathodique dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 12/09/2013, 07h22
  2. Gestion du bouton "cancel" sur action avec validator
    Par pcouas dans le forum Struts 2
    R�ponses: 3
    Dernier message: 11/11/2011, 12h29
  3. [Cocoa] Lier un bouton sur IB avec une methode
    Par ToxiK dans le forum Apple
    R�ponses: 2
    Dernier message: 06/10/2010, 15h52
  4. Bloquer un bouton sur click
    Par doudou_rennes dans le forum ASP.NET
    R�ponses: 5
    Dernier message: 20/01/2010, 12h31
  5. R�ponses: 4
    Dernier message: 08/05/2007, 09h40

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