Mam następujące wyrażenie formatowania waluty wewnątrz widoku siatki ASP.Net. Nie pokazuje formatu dolara, chociaż nie ma błędu. Jaki jest brakujący punkt?Formatowanie ciągów Nie działa z Eval
<%# String.Format("{0:C}", Convert.ToString(Eval("Amount"))) %>
znaczników
<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>
kod związany
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; }
}
Edytowane. Zapomniałem rzutować na liczbę całkowitą. – Matt
Jak to działa bez "rzucania" w pierwszym wyrażeniu? – Lijo
Zakładam, że dzieje się tak dlatego, że Int32 (int) implementuje IFormattable i zapewnia metodę ToString (format łańcucha), którą String.Format wywoła w zależności od podanego szablonu formatu. – Matt