在gridview中显示2位小数的数字

时间:2010-10-13 11:45:07

标签: asp.net gridview asp.net-3.5

我的.aspx页面中有一个Gridview。我在此grid.ow中显示动态数据。我将在gridview中显示2位小数的浮点数或双数。

7 个答案:

答案 0 :(得分:36)

绑定列应具有DataFormatString列。你可以这样做:

DataFormatString="{0:0.00}" Numeric Custom Format Strings

<强>更新AutoGenerateColumns="true"的情况下......我必须更多地了解您的约束力,但这里有一些可供探索的途径:

  1. 我不确定GridView是否会 尊重DataFormatAttribute 数据注释。如果你有约束力 一个对象,和GridView尊重 该属性,可能是一个 去的路线。
  2. 连接RowDataBound事件和 检查每个列的潜力 十进制值,并以这种方式格式化。

答案 1 :(得分:13)

你可以在GridView中编写BoundField:

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

你也可以在GridView中编写TemplateField

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

答案 2 :(得分:8)

你可以在你的边界地区做DataFormatString="{0:n2}"

答案 3 :(得分:2)

这适用于模板列,比如你想要一个比例的两个小数位(如1:3)

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

答案 4 :(得分:1)

如果您使用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

答案 5 :(得分:0)

有两种简单的方法可以在GridView中格式化事物。第一个是在上一个答案中给出的 - 使用DataFormatString。第二个,听起来适用于你动态加载网格的情况,就是改变进入网格的数据。

因此,不是返回一个数字并尝试格式化,而是返回一个格式化的数字并让GridView显示它。

答案 6 :(得分:0)

<asp:TemplateField HeaderText="Prev Salary" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <asp:Label ID="lblGrdSalary" runat="server" Text='<%#Bind("Salary", "{0:n}") %>'></asp:Label>
    </ItemTemplate>
    <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
    <ItemStyle HorizontalAlign="Center" Width="70px" />
</asp:TemplateField>