0

私はGridViewを持っていて、プログラムでaにバインドされていますList<T>。ここでTは私のカスタムオブジェクトですOrderItem。小数点タイプの値は、小数点以下の桁数を多く表示します。小数点以下第2位まで四捨五入したいと思います。それ、どうやったら出来るの?

これが私が持っているおおよそのものです:

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>
4

1 に答える 1

5

TemplateFieldsのEvalで利用可能なフォーマットを使用します。

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

バインドされたフィールドの場合は、BoundField.DataFormatStringプロパティを使用します。

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

使用できるフォーマット文字列については、 標準の数値フォーマット文字列を参照してください。

于 2012-09-24T15:04:33.087 に答える