2013-03-11 31 views
1

我有像这样列一个GridView:如何在GridView列的ItemTemplate中将数值数据格式化为数千个数据?

<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

我在做什么错?

+1

不[此](http://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for - 数字)的帮助? – kush 2013-03-11 17:13:31

回答

3

你可以这样做:

<asp:Label ID="lblM1" Text='<%# Eval("m1","{0:0,0}")%>' runat="server"></asp:Label> 

这应该格式化11239为 “11.239”。根据您的文化,组别分隔符会有所不同。

看看是否与文档

The , custom specifier

Standard Numeric Format Strings

Custom Numeric Format Strings

编辑: 顺便说一句,它可能是一个完全不同的原因。这可能是因为你在一种文化中发送数据,但是.Net却试图用不兼容的另一种文本进行解析。

0

我想你的格式,它为我工作,谢谢:)

只是改变为遵循和尝试,如果它的工作原理妳。

“>

代替评估和演示用的DataBinder.Eval。

0

简单地使用这 -

Text='<%# Eval("m1","{0:0,0}") %>' 
相关问题