web-dev-qa-db-fra.com

Montrer le nombre avec 2 décimales dans gridview

J'ai un Gridview dans ma page .aspx.Je montre des données dynamiques dans ce grid.how je montrerai le float ou le nombre double dans 2 décimales dans gridview.

14
gofor.net

La colonne liée doit avoir une colonne DataFormatString. Vous pourriez faire quelque chose comme:

DataFormatString="{0:0.00}"Chaînes numériques de format personnalisé

UPDATE Dans le cas de AutoGenerateColumns="true"... je devrais connaître plus de détails sur ce que vous êtes contraignant, mais voici quelques pistes à explorer:

  1. Je ne sais pas si GridView respectera Le DataFormatAttribute inData Annotations. Si vous associez.un objet, et que GridView respecte cet attribut, cela pourrait être une route À parcourir. 
  2. Câblez l'événement RowDataBound et Inspectez chaque colonne à la recherche de valeurs décimales potentielles .__ et formatez-le de cette manière.
36
HackedByChinese

vous pouvez écrire BoundField dans GridView:

<asp:BoundField DataField="amount" DataFormatString="{0:n}" />

vous pouvez également écrire TemplateField dans GridView

<asp:TemplateField>
  <ItemTemplate>
    <%#Eval("amount","{0:n}")%>
  </ItemTemplate>
</asp:TemplateField>
12
Jig12

Vous pouvez faire DataFormatString="{0:n2}"dans votre boundfield

8
Amit Patel

Cela fonctionne sur une colonne de modèle, disons si vous voulez un nombre décimal à deux places pour un rapport (comme 1: 3)

<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %>
2
infocyde

Si vous utilisez DataFormatString et que cela ne semble pas être le cas, ajoutez HtmlEncode = "false", par exemple:

<asp:BoundField DataField="DateScheduled" HeaderText="Date Created"   DataFormatString="{0:D}" HtmlEncode="false"/> // date format
<asp:BoundField DataField="Amount" HeaderText="Pay This Amount" DataFormatString="{0:F}" HtmlEncode="false"/> // number format
1
Jason_P

Il existe deux manières simples de formater des éléments dans un GridView. Le premier est donné dans une réponse précédente - utilisez le DataFormatString. La seconde, qui semble s’appliquer à votre situation, où vous chargez dynamiquement la grille, consiste à modifier les données entrant dans la grille.

Ainsi, plutôt que de renvoyer un nombre et d'essayer de le formater, renvoyez un nombre formaté et laissez-le GridView l'afficher.

0
Jason Berkan