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

  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�
    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

  5. #5
    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

  6. #6
    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?)

  7. #7
    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

  8. #8
    R�dacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Cloud Architect
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par d�faut
    @cyril: la seule chose que tu veux passer, c'est "true" ou "false"? car si c'est le cas, tu as pris le probl�me � l'envers et tu vas essayer de trouver une bidouille alors qu'il n'est pas n�cessaire de le faire.


    un simple bouton basique fait l'affaire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <asp:Button runat="server" Id="pwet" OnClick="button_click" OnClientClick="return DoMessage()">
    niveau JS, ca donne ceci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function DoMessage()
    {
       return confirm('Voulez vous créer une demande sur tous les éléments la liste?');
    }
    et strictement RIEN de plus. chaque fois que le mec r�pondra "non", ca ne lancera pas le postback. s'il r�pond "oui", ca lance le postback et l'action de ton bouton. donc:
    1- t'inventes pas une solution bidouille crado pour r�cup�rer une valeur javascript

    2- t'auras pas ton probl�me de double postback car ton code m�tier
    tu le fous dans le button_click.

    3- tu vas voir, tu r�duis le code javascript en une ligne au lieu de dix, et le code behind en trois lignes au lieu de 10.

    et l� tu fais du Web, du vrai

  9. #9
    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.
    Elle fonctionne tr�s bien.
    Cyril

  10. #10
    R�dacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Cloud Architect
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par d�faut


    � noter, que le return confirm('blabla'); tu pourrais le mettre directement dans le OnClientClick, pour �viter de faire une m�thode JS d'une seule ligne. je l'ai laiss�:
    1- pour montrer l'exemple si un jour tu veux une m�thode plus complexe
    2- parce que j'ai oubli� tout simplement

+ 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