5

ASP.Net Gridview 内の通貨の書式設定には、次の式があります。エラーはありませんが、ドル形式は表示されません。ここで欠けている点は何ですか?

<%# String.Format("{0:C}", Convert.ToString(Eval("Amount")) ) %>

マークアップ

 <asp:GridView ID="grdFinancialAmount" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="Emp ID">
                <ItemTemplate>
                    <%# Eval("EmpID")%>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Amount">
                <ItemTemplate>
                    <%# String.Format("{0:C}", Convert.ToString(Eval("Amount")) ) %>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

コードビハインド

protected void Page_Load(object sender, EventArgs e)
{
    Financial fin1 = new Financial { EmpID = 1, Amount = 5678 };
    Financial fin2 = new Financial { EmpID = 2, Amount = -111111 };

    List<Financial> accounts = new List<Financial>();
    accounts.Add(fin1);
    accounts.Add(fin2);

    grdFinancialAmount.DataSource = accounts;
    grdFinancialAmount.DataBind();


}


public class Financial
{
    public int EmpID { get; set; }
    public int Amount { get; set; }
}
4

4 に答える 4

20

なぜどちらかをしないのですか...

<%# String.Format("{0:C}", Eval("Amount") ) %>

また

<%# ((int)Eval("Amount")).ToString("C") %>

Amount を文字列に 2 回変換しようとしているように見えますが、文字列を通貨としてフォーマットすることはできません。

于 2013-02-10T16:55:47.160 に答える
6

これを試してください、私のために働きます。(.NET 4.5 C#、グリッドビュー)

<%#Eval("Amout", "{0:C}").ToString()%>
于 2013-11-06T23:27:28.017 に答える
3

これを試して :

<%# String.Format("{0:C}", int.Parse(DataBinder.Eval(Container.DataItem, "Amount").ToString()))  %>
于 2013-02-10T16:41:25.047 に答える