2012-09-24 4 views
0

GridView가 있으며 프로그래밍 방식으로 B를 List<T>에 바인딩합니다. 여기서 T는 내 사용자 지정 개체 (예 : OrderItem)입니다. 십진 형식 값은 많은 소수 자릿수를 표시합니다. 소수점 이하 2 자리로 반올림하고 싶습니다. 어떻게해야합니까?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

이 TemplateFields에 평가에 사용할 수있는 서식을 사용하여, 예 : 바운드 필드

<%# 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

대단히 감사합니다. :-) –