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 :

Récupérer le résultat d'un Page.ClientScript.RegisterStartupScript


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Récupérer le résultat d'un Page.ClientScript.RegisterStartupScript
    Bonjour,

    J'ai inclu dans mon code bedind un Page.ClientScript.RegisterStartupScript afin de pouvoir lancer une boite de confirmation javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void Button1_Click(object sender, EventArgs e)
            {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "resultat", "confirm('Etes-vous certain de vouloir confirmer?');", true);        
            }
    Par contre, je ne sais pas comment récupérer le résultat (true ou false) dans une variable ?

    Est-ce que quelqu'un pourrait me dire comment faire ?

    Merci.

  2. #2
    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
    La fonction "confirm" javascript te retourne un booleen.

    Si tu veux la récupérer côté javascript, il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var _maValeur = confirm(...)
    Si maintenant c'est côté asp.net que tu souhaites récupérer le résultat, le plus simple est de placer le résultat dans un champ caché auquel tu pourras accéder sans problème dans ton code.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Oui je voudrais le récupérer côté server.
    Mais quand tu parle d'un champ caché, c'est bien un asp:HiddenField ?

    Et si oui, tu stocke le résultat de cette ligne dans quelle paramètre du champ ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(this.GetType(), "resultat", "confirm('Etes-vous certain de vouloir confirmer?');", true);
    Merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    En fait, j'ai une liste déroulante sur laquelle je lance différentes actions côté server au moment d'un changement d'index de ma liste.
    J'ai pour cela mis comme attribut à ma liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnSelectedIndexChanged="ChangementSitePrincipal" AutoPostBack="true"
    Par contre, ce que je voudrais, c'est avoir une boite de confirmation au moment de mon changement d'index avant de lancer les différentes actions côté server.

    J'avais pour cela penser à inrégrer le code javascript dans mon code behind et en fonction du choix de l'utilisateur lancer ou pas le code côté server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected voidChangementSitePrincipal(object sender, EventArgs e)
            {
            this.ClientScript.RegisterStartupScript(this.GetType(), "Confirmation", "confirm('Voulez-vous cliquer ?');",true);
     
    ... "code coté server"
     
            }
    Est-ce que quelqu'un voit quel condition (if) mettre pour tester le résultat de la boite de dialogue et lancer ou pas en fonction du résultat le code côté server ?

    Merci.

  5. #5
    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
    tu le fais trop tard ton insertion de code javascript, t'es déjà dans le PostBack là

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Ok mais dans ce cas, il faut mettre l'appel à quel endroit et surtout dans quoi stocker le résultat ?

    Merci.

  7. #7
    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
    En fait, tu ne dois pas utiliser l'auto-postback de ta dropdownlist si tu veux pouvoir intervenir avec une demande de confirmation.

    Ce que tu dois faire, c'est, en javascript, intercepter l'événement "OnChange" et dans la fonction qui traite l'événement, tu fais ta demande de confirmation, puis le cas échéant, tu déclenche le PostBack avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    __doPostBack('<%=TonControl.ClientID %>', '');

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Ok mais le problème,c'est que je suis obligé de réaliser un autopostback de ma liste, car la modification de l'index sur celle-ci met à jour un tableau et une autre liste déroulante automatiquement.

  9. #9
    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
    Oui, mais la solution que je te propose te permet de faire manuellement ce que la propriété "Autopostback" fait manuellement, ce qui te permettra d'intervenir côté client avant le postback.

Discussions similaires

  1. Récupérer le résultat d'une page JSP
    Par micouz dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 15/08/2012, 09h12
  2. Presser un bouton d'une page web et récupérer le résultat
    Par Mistervanhalen dans le forum Réseau/Web
    Réponses: 6
    Dernier message: 30/08/2010, 07h50
  3. Réponses: 3
    Dernier message: 10/05/2010, 20h19
  4. Réponses: 1
    Dernier message: 24/11/2009, 18h11
  5. Réponses: 14
    Dernier message: 25/02/2009, 17h04

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