2012-09-24 43 views
0

我有一个GridView,它以编程方式绑定到List<T>,其中T是我的自定义对象,例如OrderItem。小数类型值显示许多小数位。我想把它们舍去到小数点后两位。我怎么做?GridView单元格中的舍入值

这里大概是我有:

public class OrderItem 
{ 
    public Product Product { get; set; } 
    public int Quantity { get; set; } 
    public decimal GrossAmount { get; set; } 
} 

public class Product 
{ 
    public string ProductName { get; set; } 
    public decimal Price { get; set; } 
    public decimal DiscountPercent { get; set; } 
} 



    <asp:GridView ID="dgOrderItems" runat="server" AutoGenerateColumns = "false"> 

     <Columns> 
      <asp:TemplateField HeaderText = "Product"> 
       <ItemTemplate> 
        <%# Eval("Product.ProductName") %> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:TemplateField HeaderText = "Price"> 
       <ItemTemplate> 
        <%# Eval("Product.Price") %> 
       </ItemTemplate> 
      </asp:TemplateField> 

      <asp:BoundField DataField = "Quantity" HeaderText = "Quantity" /> 
      <asp:BoundField DataField = "GrossAmount" HeaderText = "Gross Amount" /> 

      <asp:TemplateField HeaderText = "Discount (%)"> 
       <ItemTemplate> 
        <%# Eval("Product.DiscountPercent") %> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns>    
    </asp:GridView> 

回答

5

使用可用的格式在评估和演示的模板列,即:

<%# Eval("Product.Price", "{0:C}") %> 

对于绑定字段使用BoundField.DataFormatString Property,即:

<asp:BoundField DataField="GrossAmount" 
       HeaderText="Gross Amount" 
       DataFormatString="{0:f2}" /> 

请参阅Standard Numeric Format Strings以了解您可以使用的格式化字符串。

+0

我该如何处理不使用Eval函数的简单BoundField定义? –

+0

非常感谢你的确。 :-) –