我有一个像这样的列的gridview:
<asp:TemplateField HeaderStyle-Width="75px">
<HeaderTemplate>
<asp:Label ID="lblHM1" Text="Hm1" runat="server"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblM1" Text='<%# Eval("m1","{0:#0}")%>' runat="server">
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
此列中的数字通常大于1000,因此我想将它们格式化。例如,如果此列中的数据显示为11359
,我希望将其格式化为11,359
。
我尝试过以下方法:
<asp:TemplateField HeaderStyle-Width="75px">
<HeaderTemplate>
<asp:Label ID="lblHM1" Text="Hm1" runat="server"></asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblM1" Text='<%# Eval("m1","{0:N0}")%>' runat="server">
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
但上面会产生一个异常:Input string was not in a correct format
我做错了什么?
答案 0 :(得分:3)
你可以这样做:
<asp:Label ID="lblM1" Text='<%# Eval("m1","{0:0,0}")%>' runat="server"></asp:Label>
那应该将11239格式化为“11.239”。根据您的文化,小组分隔符会有所不同。
查看文档:
和
Standard Numeric Format Strings
编辑: 顺便说一句,这可能是一个完全不同的原因。可能是你在一种文化中发送数据,但是.Net正试图用另一种不兼容的数据进行解析。
答案 1 :(得分:0)
我尝试了你的格式,它对我有用,谢谢:)
只需按照以下方式进行更改,然后尝试是否适用于您。
“&GT;
而不是Eval使用DataBinder.EVal。
答案 2 :(得分:0)
只需使用它 -
Text='<%# Eval("m1","{0:0,0}") %>'