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ération d'une variable JavaScript en code behind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 275
    Par défaut Récupération d'une variable JavaScript en code behind
    Bonjour,

    Je cherche à récupérer la valeur de mon paramètre JavaScript en code Behind.
    Sur le clique d'un bouton, je pose une question qui doit me retourner oui/non.
    Sous IE 7
    -- Je récupére bien le contenu de mon paramètre. Mais le page_load est appelé 2 fois. Et c'est sur le 2 éme passage que le paramètre est bien initialisé.
    Sous FireFox
    -- Le page_load est appele une seul fois et de ce fait le contenu de mon paramètre est nul.

    Comment faire pour que cela fonctionnne sous les 2 navigateurs ?
    Attention la propriété validateRequest doit rester à false.

    Code JavaScript dans ma form ASPX.
    Les propriétés de ma form EnableEventValidation="true" validateRequest="false"
    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
     
    <script type="text/javascript">
     
        function DoMessage() 
        {
            if (confirm("Voulez vous créer une demande sur tous les éléments la liste?") == true) 
            {
                ParametrePostBack = 'true';
            }
            else 
            {
                ParametrePostBack = 'false';
            }
            // Renvoie un postback en indiqant la provenance via le bouton BtnCreerDemandeElements avec le paramètre
            setTimeout("__doPostBack('BtnCreerDemandeElements','" + ParametrePostBack + "')", 0);
        }
    </script>
    Code behind C#
    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
     
    	protected void Page_Load(object sender, EventArgs e)
        {
    		if (IsPostBack)
    		{
    			string MonControlParametre  = Page.Request.Params["__EVENTTARGET"];
                    if (MonControlParametre.ToUpper() == "BTNCREERDEMANDEELEMENTS")
                    {
                        string Parametre = Page.Request.Params["__EVENTARGUMENT"];
                        if (Parametre.ToUpper() == "TRUE")
                        {
                            Mon traitement
                        }
                    }
    		}
    	}

  2. #2
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Salut
    ca ne répondra surement pas précisément à ta question, mais à mon avis tu te compliques la vie : ca serait plus facile d'utiliser un truc du genre de ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:textbox visible=false runat=server enableviewstate=true id=idTextbox></asp:textbox>
    -> Comme la textbox est en mode visible=false, elle restera invisible à l'utilisateur

    -> Tu en actualises le contenu en JS facilement (document.getElementById...)

    -> tu en récupères la valeur au moment du postback avec idTextbox.Text



    bye
    Nico

  3. #3
    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
    Un control avec Visible=false n'est pas rendu au client

  4. #4
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Salut lutecefalco,

    Citation Envoyé par lutecefalco Voir le message
    Un control avec Visible=false n'est pas rendu au client
    c'est pas ce que j'ai marqué au dessus ?

    bye
    Nico

  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
    Citation Envoyé par Nicopilami Voir le message
    Salut lutecefalco,



    c'est pas ce que j'ai marqué au dessus ?

    bye
    Nico
    Tu dis qu'elle sera invisible mais tu sous-entends qu'elle sera présente dans le code html (sinon comment la manipuler en javascript?)

  6. #6
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Tu dis qu'elle sera invisible mais tu sous-entends qu'elle sera présente dans le code html (sinon comment la manipuler en javascript?)
    Bien vu, autant pour moi (je suis au boulot et je bosse en parallele)
    je voulais en fait faire un
    <input id="toto" runat="server" type="hidden" />
    qui là devrait pouvoir etre actualisé en JS et récupéré par le serveur par un toto.Text au moment du Postback;

    Cela dit, ca ne résout pas la question de savoir pourquoi le code initial ne fonctionne pas du premier coup

    bye
    Nico

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 275
    Par défaut
    Merci de ta réponse,

    J'ai pensé à faire ça. Mais cela ne fonctionne pas.

    Mais je voulais d'abord connaitre mon erreur.
    Et j'aimerai toujours bien comprendre.


    Cyril

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

Discussions similaires

  1. Récupérer une variable javascript dans code behind c#
    Par zakarinalaw dans le forum jQuery
    Réponses: 4
    Dernier message: 17/02/2014, 08h39
  2. Récupération d'une variable javascript dans une feuille XSL
    Par drakkar64 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/08/2008, 17h56
  3. récupération d'une variable Javascript en asp
    Par martala dans le forum ASP.NET
    Réponses: 6
    Dernier message: 29/02/2008, 10h08
  4. Appellé une fonction javascript en code behind
    Par 0xYg3n3 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/10/2007, 15h02

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