我有一個ASP.Net Gridview中的貨幣格式的下列表達式。它沒有顯示美元格式,雖然沒有錯誤。這裏缺少什麼?字符串格式不適用於Eval
<%# String.Format("{0:C}", Convert.ToString(Eval("Amount"))) %>
MARKUP
<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; }
}
已編輯。忘了將其轉換爲整數。 – Matt 2013-02-10 16:58:55
如何在沒有在第一個表達式中投射的工作? – Lijo 2013-02-10 17:00:25
我認爲這是因爲Int32(int)實現了IFormattable並提供了String.Format將根據給定的格式模板調用的ToString(string format)方法。 – Matt 2013-02-10 17:06:09