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

C# Discussion :

Récupérer une valeur renvoyée par une fonction JavaScript dans un programme C#


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 33
    Points
    33
    Par défaut Récupérer une valeur renvoyée par une fonction JavaScript dans un programme C#
    Bonjour à tous,

    J'ai un petit souci pour récupérer la valeur retournée par une fonction JavaScript dans mon programme C#.

    Voici ma fonction JavaScript. J'ai vérifié au préalable à l'aide de la fonction alert(), reponse_req[0].formatted_address contient bien la valeur, c'est-à-dire l'adresse que je souhaite récupérer.

    Code JS : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function calcul_position(position) 
    {
    	var coord_lat_lon = position.split(',', 2); // Retourne un tableau de chaînes découpées par un séparateur
     
    	// Conversions des chaînes en décimal.
    	var lat = parseFloat(coord_lat_lon[0]);
    	var lon = parseFloat(coord_lat_lon[1]);
     
    	var lat_lon = new google.maps.LatLng(lat, lon); // LatLng correspond aux coordonnées géographiques (latitude et longitude) d'un point
     
    	// Géocoder une requête
    	geocodeur.geocode({ 'latLng': lat_lon }, function(reponse_req, statut_req) 
    	{
    		// Code de statut retourné par Geocoder une fois l'appel à geocode() achevé. La réponse contient une réponse GeocoderResponse valide
    		if (statut_req == google.maps.GeocoderStatus.OK) 
    		{
    			if (reponse_req[0]) 
    			{
    				alert(reponse_req[0].formatted_address); // Test, affiche bien l'adresse
    				return reponse_req[0].formatted_address;
    			}
    			else
    				alert('Aucun résultat n\'a été trouvé !');
    		} 
    		else 
    			alert('Le géocodage a échoué pour cette raison : ' + statut_req);
    	}
    	);
    }

    Pour mon programme C#, je fais appel à cette fonction JavaScript simplement.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void btn_test_adresse_Click(object sender, EventArgs e)
    {
    	object[] position = { "49.3044255,6.1452053" };                             
    	webBrowser_carte_Google_Maps.Document.InvokeScript("calcul_position", position);
    }

    Comme ça fonctionne ainsi, je pensais que ça fonctionnerait aussi pour récupérer la valeur de cette fonction et ce n'est pas le cas.
    La variable resultat reste toujours avec la valeur null.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    object resultat = webBrowser_carte_Google_Maps.Document.InvokeScript("calcul_position", position);

    Quelqu'un peut-il m'aider ?

    Merci d'avance.
    Bonne journée.

  2. #2
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    il me semble que ce n'est pas possible... mais je n'en mettrai pas ma main à couper.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Merci beaucoup kheironn pour ta réponse.

    Si même vous ne connaissez pas la réponse, je ne sais pas où je pourrais obtenir une meilleur aide.

    Connaissez-vous un autre moyen de faire passer un paramètre depuis C# à une fonction JavaScript et de récupérer la valeur retournée dans ce programme C# ?

    Merci.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Je ne suis pas spécialiste des IHM Web, mais je pense que tu peux par exemple stocker le résultat dans un champs textBox caché et le rellire depuis le code serveur une fois le post effectué.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Merci pour la réponse.

    OK Bluedeep.

    Par contre, je ne vois pas vraiment comment il serait possible de faire ça.
    Peux-tu me montrer un exemple ?

    Merci.

  6. #6
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Je ne suis pas spécialiste des IHM Web, mais je pense que tu peux par exemple stocker le résultat dans un champs textBox caché et le rellire depuis le code serveur une fois le post effectué.
    j'aurais plutôt utilisé un HiddenField...

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par kheironn Voir le message
    j'aurais plutôt utilisé un HiddenField...
    Je te l'accorde bien volontiers. Comme mentionné, je ne fais quasiment pas de développement d'IHM (encore moins web) et me contentais de lui expliquer le principe à utiliser.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 39
    Points : 33
    Points
    33
    Par défaut
    Salut à tous,

    En effet, en passant par un champ caché ça fonctionne bien même si ce n'est pas super pratique.

    Faut juste splitter les données dans C# pour récupérer seulement la valeur.
    En C#, récupérons la valeur de la fonction JavaScript.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (webBrowser_carte_Google_Maps.ReadyState == WebBrowserReadyState.Complete)
    {
        HtmlElement champ_ad = webBrowser_carte_Google_Maps.Document.GetElementById("champ");
     
        MessageBox.Show(champ_ad.OuterHtml);
    }

    Dans la page HTML contenant la fonction JS.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="champ" type="hidden" />

    Dans la fonction JS par exemple.

    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("champ").value = val_var_JS_a_recup;

    Voilà.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/06/2011, 14h22
  2. Récupérer la valeur renvoyé par une requette SQL
    Par laguine666 dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 24/04/2009, 22h40
  3. [JMeter] Récupérer une valeur renvoyée par une procédure stockée
    Par goldest dans le forum Tests et Performance
    Réponses: 0
    Dernier message: 21/01/2009, 11h41
  4. Utilisation d'une valeur renvoyée par un sous-état dans un état
    Par Heytabernak dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 03/09/2008, 16h39
  5. [SQL] php et recuperation d'une valeur renvoyée par une fonction sql
    Par highman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2006, 15h42

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