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 :

Désactivation d'un bouton entre clic et doPostBack (en .NET 1.1)


Sujet :

ASP.NET

  1. #21
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Pas possible en 1.1

  2. #22
    Membre habitué Avatar de Vonziz
    Inscrit en
    Décembre 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 215
    Points : 131
    Points
    131
    Par défaut
    God Save the .NET 1.1 ^^

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Ca marche pour toi en faisant ca ? :
    sur ta page t'ajoutes le script suivant :

    <script type="text/javascript">
    function onButtonClick(sender)
    {
    if (sender != null)
    {
    if (sender.disabled == null || sender.disabled == false)
    {
    __doPostBack(sender.id,'');
    sender.disabled = true;
    }
    else
    {
    alert('inactif');
    }
    }
    }
    </script>


    et tu fais ton linkbutton comme suit :

    <asp:LinkButton ID="LinkButton1" runat="server" Text="Valider" OnClientClick="onButtonClick(this)" OnClick="LinkButton1_Click" />


    Si au 2ème click t'as une boite de dialogue qui s'affiche c'est que c'est bon.

  4. #24
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    xamage, il est en 1.1 donc OnClientClick n'existe pas

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Grrrr j'avais oublié de détail
    fais ch*** ce 1.1...

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Et on peut pas adapter mon bout de code en mettant dans le form_load :

    btn.attributes.add('onclick', 'onButtonClick(this)');

    Et coté UI un linkbutton tout simple :

    <asp:LinkButton ID="LinkButton1" runat="server" Text="Valider" OnClick="LinkButton1_Click" />

    ??

  7. #27
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Tu voudrais pas lire le topic depuis le début?

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    je l'ai lu depuis le début.
    ca marche. le bouton se grise et redevient clickable une fois que le postback est terminé.

  9. #29
    Membre habitué Avatar de Vonziz
    Inscrit en
    Décembre 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 215
    Points : 131
    Points
    131
    Par défaut
    Ca marche avec des appuis vraiment intensifs?

    Car chez moi, ton exemple provoque des erreurs Javascript mais paraît marcher sur une utilisation moins intensive.

    Malgré une bonne intention, je ne pense pas que ta solution soit exploitable pour le moment.

    Allez!!!! On se motive les gars!!! ^^

  10. #30
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Des erreurs javascript dis tu ?
    Quoi exactement ?
    Tu les as quand tu cliques comme un fou ou tout le temps ?
    J'ai essayé en faisant le fameux "double click" si néfaste mais cher à beaucoup d'utilisateurs, et seul le premier click était pris en compte (comportement attendu).
    Après, une fois que le bouton est grisé de toute facon on ne peut plus cliquer...
    Par contre, j'avais mis un Sleep(5000) pour simuler un temp de traitement coté serveur de 5 secondes, mais je n'ai pas essayé sans mettre de sleep().

    Pour info le bout de javascript que j'ai écris plus haut ne fonctionnera que dans un formulaire simple. Si tu es dans WebUserControl y a une petite retouche a faire, mais je pense pas que ce soit ton cas. Idem si ta page a une master page (mais c'est pas possible en 1.1...)

    Pour l'instant j'ai pas d'autre idée (a part l'extender ajax, mais ce n'est peut etre pas possible en 1.1)

  11. #31
    Membre habitué Avatar de Vonziz
    Inscrit en
    Décembre 2006
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 215
    Points : 131
    Points
    131
    Par défaut
    J'ai une mauvaise nouvelle, c'est un WebUserControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class EnvoisDemande : System.Web.UI.UserControl
    Comment faire? ^^

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    ASP.Net renome tes controles des lors qu'ils sont dans un ContentPlaceHolder (en 2.0 quand tu as une MasterPage), ou quand tu es dans un user control. Ceci au cas ou tu aurais 2 user controls différents contenant chacun un bouton ayant le meme id et que tu placerais ces 2 UC dans la meme Form, du coup tu aurais sur le meme formulaire 2 boutons ayant le meme Id, et ca c'est pas possible.
    Du coup ASP.net renomme tes controls en les préfixant selon le nom de leur conteneur. Exemple, mon user control s'appelle WucToto et contient un bouton btnToto, asp.net genera l'id suivant pour le bouton : MaForm$WucToto$btnToto.

    Essaye ca :

    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
    17
    18
    19
    20
    21
    22
     
    <script type="text/javascript">
    function onButtonClick(sender)
    {
    if (sender != null)
    {
    if (sender.disabled == null || sender.disabled == false)
    {
     var postFunction = "<%=this.ClientID%>";
     var reg = new RegExp("(_)", "g");
     postFunction = postFunction.replace(reg, "$")
     postFunction = postFunction + "$" + sender.id;
     __doPostBack(postFunction,'')
     sender.disabled = true;
    }
    else
    {
     alert('bouton inactif');
    }
    }
    }
    </script>
    Y a peut etre qques retouches a faire...

    PS :
    Je fais une RegEx pour remplacer les '_' par des '$' car chez moi, <%=this.ClientID%> génère un nom du 'Ctl00_PageContent_WucToto', or pour déclencher l'évènement il faut invoquer (dans mon cas) 'Ctl00$PageContent$WucToto$btnToto'

  13. #33
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Utilises UniqueID alors

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Oui y a moyen de simplifier, j'avais fais ca y a un petit moment déjà, mais une chose ne change pas, javascript et moi ca fait 2

Discussions similaires

  1. [ZF1.9.2] désactivation bouton après clic
    Par vince29 dans le forum Zend Framework
    Réponses: 5
    Dernier message: 15/03/2011, 15h09
  2. désactiver une image bouton
    Par vraipolite dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/06/2006, 12h06
  3. erreur Constante? sur bouton de clic
    Par aarlock dans le forum Access
    Réponses: 5
    Dernier message: 28/04/2006, 16h04
  4. Réponses: 2
    Dernier message: 23/01/2006, 19h56
  5. Submit et bouton entrée
    Par Canou dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/10/2004, 16h45

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