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 :

Message de confirmation en JS sur un clique d'une image ASP.NET et C#


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Message de confirmation en JS sur un clique d'une image ASP.NET et C#
    Hello tout le monde !

    J'ai un petit soucis sur une fonction en JavaScript que j'appelle lors d'un clique de bouton, qui est censé m'afficher une "alerte" représentant un message de confirmation.
    En fait, l'utilisateur sélectionne une ligne de mon GridView (qui représente une personne), puis un bouton image "supprimer" apparait (jusque là, tout va bien). Lorsque je clique sur le bouton "supprimer", j'aimerai qu'une box apparaissent avec un jolie message du style ("Êtes-vous certain de vouloir supprimer ce contact?"). Si l'utilisateur répond "Ok", alors une méthode de suppression du contact se lance, sinon rien ne se passe. Le hic, c'est que je pense que je m'y prend de travers. Dans ma page aspx, avant mon body, j'ai ce code en JS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
          function confirmSubmit() {
              var msg = "Etes vous sûr de vouloir supprimer ce contact?";
              if (confirm(msg)) {
                  return true;
              } else {
                  return false;
              }
          }
        </script>
    Ensuite, j'ai un onClick sur une imageButton, avec comme code C#:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void ImageButtonSuppr_Click(object sender, ImageClickEventArgs e)
            {
     
     
                Response.Write("<body><script>return confirmSubmit();</script></body>");
                if(true)
                {
                    SupprimerContact();
                }
            }
    Donc déjà, mon if(true) n'est pas bon, j'aimerai savoir si vous aviez une idée de comment récupérer la réponse de l'utilisateur, ou du moins ce que retourne la méthode?
    Ensuite, avec mon Response.Write, une erreur se produit: "Instruction 'return' en dehors d'une fonction".

    Pourtant, quand j'écris ce code dans le Page_Load:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void Page_Load(object sender, EventArgs e)
            {
                ImageButtonSuppr.Attributes.Add("onClick", "return confirmSubmit();");
                if (true)
                {
                    SupprimerContact();
                }
     
     
            }
    Cela me lance correctement la petite box message. Bon, avec l'erreur "La référence d'objet n'est pas définie à une instance d'un objet" qui est dû au "if(true)" -- et qui n'est pas à écrire je sais...
    Le truc, c'est que pour moi, ça "lit le code pour rien", dans le sens qu'au moindre clique, hop, on "recharge" cette méthode donc au niveau du code c'est pas tip-top. J'aimerai que ça se lance vraiment en cliquant juste sur le bouton et pas au chargement de la page..

    Je vous remercie par avance de votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Oui tu t'y prend mal, l'idée c'est de ne pas faire de postback tant que l'utilisateur n'a pas cliqué sur oui, donc ton image devrait seulement appelé la fonction confirmSubmit et c'est elle qui fera le postback.
    Déjà pour appeler ta fonction soit tu utilises un image bouton et tu met ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <asp:ImageButton ID="ImageButton1"  runat="server" ImageUrl="~/Images/heroAccent.png" OnClientClick="confirmSubmit(); return false;" />
    le return false permet de ne pas faire de postback, sinon l'autre solution c'est de prendre un composant html classique pour faire ça.
    et l'idée c'est que dans ta fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function confirmSubmit() {
              var msg = "Etes vous sûr de vouloir supprimer ce contact?";
              if (confirm(msg)) {
                  return true;
              } else {
                  return false;
              }
          }
    au lieu du return true tu fait directement un postback, ou tu appel un bouton caché dans la page qui se chargera de faire le postback.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Merci pour ton aide youtpout978,

    Du coup, je viens de mettre un bouton non visible sur ma page, qui appelle lors du clique la méthode Supprimer(). Le problème c'est comment faire directement un postback à la place du return true de ma fonction JS?
    Il faut que j'écrive un truc de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Document.Formulaire.BoutonCache_Click()
    ?

    En testant, j'ai une erreur du style "Erreur d’exécution JavaScript: Impossible d’obtenir la propriété « BoutonCache_Click » d’une référence null ou non définie".
    Je me doute que ce n'est pas de cette manière qu'il faut l'écrire mais du coup comment y faire appel?

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    j'ai dû rater un truc car ça me paraît bien compliquer vos trucs avec 2 boutons.
    Voilà comment j'aurais fait (je peux pas confirmer pour l'instant, j'ai pas la version Web de VS sous la main) :
    (je considère que l'association de l'event click est faite)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:ImageButton ID="ibtn1" OnClick="ibtn1_Click" runat="server" ImageUrl="image.png" OnClientClick="return confirm('sûr ?');" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected void ibtn1_Click(object sender, EventArgs e) {
        // delete le truc en question (avec une info du sender pour savoir lequel exactement)
    }
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Et bien, merci beaucoup jopopmk!
    C'est fou comme je me complique la vie par moment. Je n'avais même songé à ça. Et tout fonctionne nickel!
    Code court, net et précis. Comment passer pour un boulet ^^ !
    Merci encore à vous deux!!

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

Discussions similaires

  1. [AC-2003] Message de confirmation des modifications dans le résultat d'une requête
    Par Kaera dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/05/2012, 10h59
  2. Réponses: 1
    Dernier message: 03/07/2007, 16h05
  3. Question sur le traitement d'une image
    Par Muesko dans le forum Imagerie
    Réponses: 3
    Dernier message: 28/05/2007, 18h09
  4. Réponses: 3
    Dernier message: 07/07/2006, 16h47
  5. Réponses: 11
    Dernier message: 28/01/2006, 20h52

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