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 :

GridView - Format Monétaire avec DataFormatString [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut GridView - Format Monétaire avec DataFormatString
    Bonjour,

    j'utilise un gridview dans une page aspx, et j'ai besoin, pour une colonne de prix, de le passer dans un format monétaire, de type 1234 > 1,234 (en gros, format américain sans le '$').

    Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:BoundField HeaderText="Amount US$" DataField="DisplayAmount" SortExpression="Amount" DataFormatString="{0:n}"/>
    Est le format n'est pas modifié. J'ai lu un peu partout quil fallait rajouter "HtmlEncode="false", ça a l'air d'avoir fonctionné pour pas mal de monde, mais ça n'est pas mon cas

    Des idées ? J'utilise Visual Studio 2008 & Sharepoint, et travaille dans le Framework .Net 3.5

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 21
    Par défaut
    Quel est le type de la colonne "DisplayAmount" dans ta source de données (DataTable ou autre).

    Il faut que le type soit un numérique, si c'est un string, le format numérique est ignoré.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut
    Bonjour ! Bien vu, c'est un string. Du comment comment cela se passe pour pouvoir régler ce problème d'affichage ? Un moyen déviter de changer le type de la colonne ?

  4. #4
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Fais un Convert avant de binder ta colonne.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut
    Dans le PreRender c'est bien ça ? (là c'est le moment où je signale que je suis un débutant en C#, et que je découvre totalement ASP et Sharepoint )

    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (DataControlField field in gridview.DataSource)
    ?

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut
    Bon, problème décallé en fait, j'ai possibilité d'utiliser une variable de type décimal en utilisant un ValueFormatter

    A l'heure actuelle, ça ressemble à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    decimal? v = context.SourceValue as decimal?;
                if (v.HasValue)
                    return String.Format("{0:0.00}", v.Value);
    Pour ajouter un séparateur des milles, je suis parti vers un String.Format("{0:#,#.00}", v.Value);

    Mais bien évidemment, ça ne fonctionne pas

    Je passe à coté d'un truc ?

    EDIT : des formats comme {0:N} ou {0:0,0.00} ont également été testés dans succès.

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Pour formater ta variable de type decimal, il faut le faire dans le ToString(). Juste la lettre devrait suffire comme ceci :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    decimal?v = context.SourceValue as decimal?;
    if (v.HasValue)
        return v.Value.ToString("N");
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. Format Monétaire dans un gridView
    Par PatStan17 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/08/2009, 17h37
  2. format monétaire avec decimal-format
    Par FlyByck dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 05/10/2008, 04h39
  3. Réponses: 10
    Dernier message: 22/06/2008, 17h12
  4. [Format]nombres avec des 0
    Par zozolh2 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 01/06/2004, 08h43
  5. Format monétaire dans un DBedit
    Par cdlr27 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/04/2004, 16h41

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