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 :

MVC AJAX et nombres Float


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut MVC AJAX et nombres Float
    Bonjour à tous,

    Je suis face à un problème un peu tordu et me demande comment je vais bien pouvoir le retourner.

    J'ai une vue bindée à un objet on va dire de type Adresse qui possede deux properties (Latitude et Longitude de type float).
    Sur cette vue j'ai deux champs hidden bindés au deux propriétés ci dessus.
    Dans mon controller, j'ai en parametre mon objet adresse (donc action fortement typée).

    Quand je clique sur un bouton, je fais appel à une fonction Javascript qui va me chercher les coordonnées GPS de l'adresse et vient modifier les valeurs des champs Hidden.
    Tout fonctionne très bien sauf que les valeurs retournées sont au format décimal americain donc séparé par un point.
    Lors de l'appel à l'action, MVC balance automatiquement toutes les données dans l'objet Adresse avant de commencer l'action. Or comme mon navigateur a une culture francaise, le binding des float ne fonctionne pas vu qu'ils ne sont pas séparés par une virgule mais par un point.

    Je me demandais donc s'il y avait un moyen de contourner ce probleme ?
    Si quelqu'un a une idée...
    Merci d'avance

    @+

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2003
    Messages : 108
    Par défaut
    il faudrait que tu trouve à un moment entre tes actions la possibilité de formater le resultat (remplacer le . par ,)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    Oui c'est ce que j'ai fait mais c'est pas super...
    En gros, quand je reçois une valeur de JS et qu'elle arrive dans l'action, je dois la formater avant l'action car le binding ne se fait pas sinon.
    Quand j'envoie la valeur de mon action (pour affichage) dans mon champs hidden et que mon javascript va la chercher, je dois la reconvertir une nouvelle fois avant de la traiter en JS. Bref, des opérations un peu galeres mais bon cela fonctionne maintenant.

    Ah et pour info, voici une fonction javascript permettant de connaitre le séparateur de virgule selon la culture afin de le remplacer dans la chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function whatDecimalSeparator() {
        var n = 1.1;
        n = n.toLocaleString().substring(1, 2);
        return n;
    }

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

Discussions similaires

  1. séparer un nombre float
    Par namstou3 dans le forum Langage
    Réponses: 1
    Dernier message: 09/08/2007, 19h53
  2. Zend MVC + Ajax
    Par Reckonings dans le forum MVC
    Réponses: 3
    Dernier message: 06/08/2007, 16h36
  3. [AJAX] Ajax et nombre d'internautes en ligne
    Par Navyel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/05/2007, 19h23
  4. Tester nombre : float ou integer?
    Par webrider dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/04/2007, 15h02
  5. Arrondir un nombre float
    Par Kyojimbo dans le forum Général Python
    Réponses: 5
    Dernier message: 14/03/2006, 19h14

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