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.
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:
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>
Vous pouvez faire DataFormatString="{0:n2}"
dans votre boundfield
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() %>
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
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.