我在一个.aspx页面中有一个GridView,展示动态数据,并设置AutoGenerateColumns="True"
。
根据用户在下拉框中选择的选项,我绑定不同的DataTable到GridView。例如,如果用户选择Persons,则我获取Persons DataTable,如果用户选择Products,则我获取Products DataTable。
如何在GridView中显示带有2位小数的浮点数或双精度数?
我在一个.aspx页面中有一个GridView,展示动态数据,并设置AutoGenerateColumns="True"
。
根据用户在下拉框中选择的选项,我绑定不同的DataTable到GridView。例如,如果用户选择Persons,则我获取Persons DataTable,如果用户选择Products,则我获取Products DataTable。
如何在GridView中显示带有2位小数的浮点数或双精度数?
绑定列应该有一个DataFormatString列,你可以这样做:
DataFormatString="{0:0.00}"
数字自定义格式字符串
更新
如果AutoGenerateColumns="true"
...我需要了解更多关于你绑定的信息,但以下是一些探索途径:
你可以在GridView中编写BoundField:
<asp:BoundField DataField="amount" DataFormatString="{0:n}" />
你也可以在GridView中编写TemplateField
<asp:TemplateField>
<ItemTemplate>
<%#Eval("amount","{0:n}")%>
</ItemTemplate>
</asp:TemplateField>
你可以在绑定字段中使用 DataFormatString="{0:n2}"
这适用于模板列,比如说你想要一个小数点后保留两位的比率(比如1:3)
<%# Eval("somedatacolumn", "1:{0:.##}").ToString() %>
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
在GridView中有两种简单的格式化方式。第一种方式在之前的答案中已经给出 - 使用DataFormatString。 第二种方式适用于您的情况,即动态加载网格,可以更改进入网格的数据。
因此,不要返回数字并尝试格式化它,而应返回格式化后的数字,让GridView显示它。
<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>