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 :

Comment supprimer l'AutoPostBack avec une fonction JavaScript ?


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut Comment supprimer l'AutoPostBack avec une fonction JavaScript ?
    Bonjour,

    Mon problème:

    - j'ai un control serveur de type "button"
    sur le click ce dernier execute une fonction javascript (text_deleteText()) avant d'effectuer le postback

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <asp:Button ID="BTN_DELETE" runat="server" OnClick="BTN_DELETE_Click" OnClientClick="text_deleteText()" Text="Delete" />
    - ma fonction javascript (text_deleteText()) ressemble à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function text_deleteText()
    {
        if (!confirm("Are you sure you want to delete....?"))
            return false;
    }
    j'aimerai que lorsque l'utilisateur ne confirme pas la suppression l'AutoPostBack ne se fasse pas. Actuellement que je confirme ou pas la boite javascript l'autopostback se declenche toujours.

    y-aurait'il une solution ?

    par avance merci

  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
    Faut juste mettre:
    return confirm("Are you sure you want to delete....?")

    S'il clique sur Annuler, ça retournera False

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Faut juste mettre:
    return confirm("Are you sure you want to delete....?")

    S'il clique sur Annuler, ça retournera False
    Ce code fait la même chose que le mien.
    Effectivement la fonction JS retourne false mais l'AutoPostBack se déclenche quand même.

    Cette fonction est executée en JavaScript sur le client et non sur le serveur.

  4. #4
    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
    Citation Envoyé par phalgand Voir le message
    Effectivement la fonction JS retourne false mais l'AutoPostBack se déclenche quand même.
    C'est pas normal.
    T'es sûr que tout fonctionne comme tu le dis?

  5. #5
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Tu as enlevé le ! de ton code

    if (!confirm("Are you sure you want to delete....?"))
    return false;

  6. #6
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut
    Pour vérifier si le PostBack était bien effectué j'ai mis un point d'arret sur ma fonction serveur lié au click du bouton (BTN_DELETE_Click). Que je confirme ou pas la boîte javascript cette fonction est executée.

    Je resume mon code:

    page aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="BTN_DELETE" runat="server" OnClick="BTN_DELETE_Click" OnClientClick="text_deleteText()" Text="Delete" />
    fonction javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function text_deleteText()
    {
        return confirm("Are you sure you want to delete this language?");
    }
    code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void BTN_DELETE_Click(object sender, EventArgs e)
        {
            // ... mon traitement ...
    }
    Une chose non spécifiée dans mes précedents messages, la page en question est une ContentPlaceHolder. Je ne sais pas si cela a une influence ?

  7. #7
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut
    Pour test si je mets un return false dans le OnClickClient cela du coup n'execute jamais le PostBack:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="BTN_DELETE" runat="server" OnClick="BTN_DELETE_Click" OnClientClick="text_deleteText();return false;" Text="Delete" />

  8. #8
    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
    Si tu vires le return false et que tu utilises:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function text_deleteText()
    {
        return false;
    }

  9. #9
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Si tu vires le return false et que tu utilises:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function text_deleteText()
    {
        return false;
    }
    bien sûr plus de confirm mais toujours le postback ?.?.?.?...

  10. #10
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Le problème est que pour que ça fonctionne, tu ne dois pas appeler une méthode qui retourne false, mais faire le return de la valeur retournée par la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    page aspx
          Code  :
          <asp:Button ID="BTN_DELETE" runat="server" OnClick="BTN_DELETE_Click" OnClientClick="return text_deleteText()" Text="Delete" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     fonction javascript
          Code  :
          function text_deleteText()
    {
        return confirm("Are you sure you want to delete this language?");
    }
    et ça devrait marcher

  11. #11
    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
    Exact, me faut un café, ou 2

  12. #12
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 40
    Par défaut
    Citation Envoyé par Pongten Voir le message
    Le problème est que pour que ça fonctionne, tu ne dois pas appeler une méthode qui retourne false, mais faire le return de la valeur retournée par la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    page aspx
          Code  :
          <asp:Button ID="BTN_DELETE" runat="server" OnClick="BTN_DELETE_Click" OnClientClick="return text_deleteText()" Text="Delete" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     fonction javascript
          Code  :
          function text_deleteText()
    {
        return confirm("Are you sure you want to delete this language?");
    }
    et ça devrait marcher
    YEEEAAAHHHH!!!! You are the king!!!

    Cela fonctionne en effet ainsi. Super, merci !

    Super ce forum. Je découvre ASP.NET depuis un mois et j'y retrouve une mine d'informations et de solutions.

    Merci à vous tous pour votre aide et votre temps

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/12/2007, 01h08
  2. Réponses: 1
    Dernier message: 16/03/2007, 17h30
  3. Réponses: 11
    Dernier message: 06/09/2006, 12h48
  4. Initialiser un champ texte avec une fonction javascript
    Par Agoye dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2006, 11h26
  5. problème avec une fonction javaScript
    Par volthur dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/05/2006, 18h04

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