gridview中的格式十进制值

时间:2009-11-24 15:37:39

标签: c# asp.net gridview

我的Gridview中有一个绑定字段,它从数据库表中获取其值。

我有数据,但不知道如何在gridview中格式化它。

例如,我从下面得到的总数据如“123456”,但我想显示为“123,456”

  <asp:BoundField DataField="totaldata" HeaderText="Total Data"  
       ReadOnly="True" SortExpression="totaldata" />

我该怎么做?我是否需要将绑定字段转换为模板字段?但是之后我该怎么做。

请帮忙。

我使用了DataFormatString =“{0:n0}”,它解决了上述问题。

我该怎么做:

<asp:TemplateField HeaderText="Failed Files" 
            SortExpression="NumFailed">
            <ItemTemplate>
             <asp:Image ID="Image2" runat="server" ImageUrl="~/NewFolder1/warning_16x16.gif" />
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles") %>'></asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>

超链接具有需要格式化的数字......

4 个答案:

答案 0 :(得分:8)

使用DataFormat属性:

<asp:BoundField DataField="totaldata" HeaderText="Total Data"  
     ReadOnly="True" SortExpression="totaldata" DataFormatString="{0:n3}" />

编辑:对于问题的第二部分,请使用Eval方法的第二个参数来格式化数据:

<%# Eval("NumFailedFiles", "{0:n3}") %>

然后你的模板就是这样:

<asp:TemplateField HeaderText="Failed Files" 
    SortExpression="NumFailed">
    <ItemTemplate>
     <asp:Image ID="Image2" runat="server" 
         ImageUrl="~/NewFolder1/warning_16x16.gif" />
        <asp:HyperLink ID="HyperLink1" runat="server" 
                 NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' 
                 Text='<%# Eval("NumFailedFiles", "{0:n3}") %>'></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:2)

有两种方法可以解决这个问题

选项1

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles","{0:n0}") %>'></asp:HyperLink>

选项2

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?  id="+Eval("MachineID") %>' Text='<%# Bind("NumFailedFiles").ToString("N") %>'></asp:HyperLink>

选项3
在代码隐藏页面中创建一个返回格式化数字的方法。

 protected string GetFormatedNumber(object number)   
 {  
   if ( number != null )  
       {  
          return number.ToString("N");  
       }  
       return "0";   
 }  

并在您的aspx页面中调用该方法,如下所示:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "GetFilesFailed.aspx?  id="+Eval("MachineID") %>' Text='<%#GetFormatedNumber(Eval("NumFailedFiles")) %>'></asp:HyperLink>

答案 2 :(得分:0)

我认为您需要查看How to Format Data in the DataGridView

上的这篇MSDN文章

答案 3 :(得分:0)

如果您想在gridview上格式化您的数据&#34; {0:n3}&#34;

 <asp:Label ID="label" runat="server" Visible="true" Text='<%#DataBinder.Eval(Container.DataItem, "data","{0:n3}") %>'></asp:Label>