【问题标题】:format decimal value in gridview在gridview中格式化十进制值
【发布时间】:2009-11-24 15:37:38
【问题描述】:

我的 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>

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

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    使用 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>
    

    【讨论】:

    • 这是正确的,但我只是修改了一点 DataFormatString="{0:n0}" 只是为了删除小数点....但是我有一个问题请帮助我将它添加到我的问题
    【解决方案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>
    

    【讨论】:

      【解决方案3】:

      我认为您需要查看How to Format Data in the DataGridView 上的这篇 MSDN 文章

      【讨论】:

        【解决方案4】:

        如果您想在 gridview 上格式化数据,请使用“{0:n3}”

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-09-24
          • 1970-01-01
          • 2014-11-08
          • 2013-08-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多