Отображение числа в 2 десятичных разрядах в сетке - PullRequest
15 голосов
/ 13 октября 2010

У меня есть одно Gridview на моей странице .aspx. Я показываю динамические данные в этой сетке. Как я буду показывать число с плавающей запятой или двойное число в 2 десятичных разрядах в gridview.

Ответы [ 6 ]

36 голосов
/ 15 октября 2010

Связанный столбец должен иметь столбец DataFormatString. Вы можете сделать что-то вроде:

DataFormatString="{0:0.00}" Числовые строки пользовательского формата

UPDATE В случае AutoGenerateColumns="true" ... мне нужно знать больше подробностей о том, что вы связываете, но вот несколько путей для изучения:

  1. Я не уверен, что GridView уважать атрибут DataFormatAttribute в Аннотации данных. Если вы обязательны объект, и GridView уважает этот атрибут, это может быть один маршрут идти.
  2. Подключите событие RowDataBound и осмотреть каждый столбец на наличие десятичные значения и отформатируйте таким образом.
13 голосов
/ 24 февраля 2014

вы можете написать BoundField в GridView:

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

вы также можете написать TemplateField в GridView

<asp:TemplateField>
  <ItemTemplate>
    <%#Eval("amount","{0:n}")%>
  </ItemTemplate>
</asp:TemplateField>
9 голосов
/ 09 августа 2017

Вы можете сделать DataFormatString="{0:n2}" в вашем поле

2 голосов
/ 27 апреля 2016

Это работает для столбца шаблона, скажем, если вы хотите десятичное число в двух местах для отношения (как 1: 3)

<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %>
1 голос
/ 27 октября 2016

Если вы используете DataFormatString и, похоже, это не сработает, добавьте HtmlEncode = "false", например:

<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
0 голосов
/ 15 октября 2010

Существует два простых способа форматирования объектов в GridView.Первый дан в предыдущем ответе - используйте DataFormatString.Второе, которое звучит так, как будто оно применимо к вашей ситуации, когда вы динамически загружаете сетку, - это изменение данных, поступающих в сетку.

Таким образом, вместо того, чтобы возвращать число и пытаться его отформатировать, вернитеотформатированный номер и пусть GridView отобразит его.

...