假设我的aspx页面中有这个标签:
<asp:Label ID="savings" runat="server" Text='<%# Eval("savings")%>' />
有没有办法将标签的文本格式化为货币格式的字符串?我在寻找这样的东西:
<asp:Label ID="savings" runat="server" Text='<%# Eval("savings").ToString("C")%>' />
当我运行这个时,我得到:
No overload for method 'ToString' takes 1 arguments
编译错误。
我知道我可以轻松地在我的代码隐藏中执行此操作,但我想知道是否可以从.aspx文档中执行此操作。
试试这段代码:
<asp:Label ID="savings" runat="server" Text='<%# string.Format("{0:C}", Eval("savings"))%>' />
如果您正在处理字符串,请尝试使用此代码
<asp:Label ID="savings" runat="server" Text='<%# String.Format("{0:c}", Convert.ToDecimal(Eval("savings")))%>' />
ToString(string)
方法仅对数值类型进行操作,但Eval(string)
返回object
。
在调用扩展方法之前将结果转换为正确的类型,如下所示:
<%# ((decimal)Eval("savings")).ToString("C") %>
晚了......但很有用
任何寻找印度货币格式或任何其他货币的人都使用CultureInfo类。例:
(YourData).ToString("C2",CultureInfo.CreateSpecificCulture("in-IN"));
我建议你将你想要格式化的数据转换为十进制,以便跳过任何开销,同时检查this页面以获取更多文化组合以及更多关于格式化的信息。