假设我的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文档中进行此操作。
答案 0 :(得分:9)
试试这段代码:
<asp:Label ID="savings" runat="server" Text='<%# string.Format("{0:C}", Eval("savings"))%>' />
答案 1 :(得分:2)
如果您正在处理字符串
,请尝试使用此代码<asp:Label ID="savings" runat="server" Text='<%# String.Format("{0:c}", Convert.ToDecimal(Eval("savings")))%>' />
答案 2 :(得分:1)
ToString(string)
方法仅适用于数字类型,但Eval(string)
会返回object
。
在调用扩展方法之前将结果转换为正确的类型,如下所示:
<%# ((decimal)Eval("savings")).ToString("C") %>
答案 3 :(得分:0)
迟到但很有用
任何寻找印度货币格式或任何其他货币的人都使用CultureInfo类。 例如:
(YourData).ToString("C2",CultureInfo.CreateSpecificCulture("in-IN"));
我建议您将尝试格式化的数据转换为十进制以便跳过任何开销,同时检查this页面以获取更多文化组合以及有关格式化的更多信息。