1

我有以下html代码...

<%=String.Format("{0:C0}", item.currency)%>

我需要货币格式,但我的负面显示是这样的......

($2,345)

我希望格式为红色。我可以设置一个切换变量,但有没有更简单的方法?

4

1 回答 1

1

在我的项目中,我想做同样的事情,但也将负值显示为“-$2345”而不是括号。

为了处理格式,我首先将以下内容添加到我的 BaseController 类(顾名思义,它是我所有控制器的基类):

protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
    base.Initialize(requestContext);

    System.Globalization.CultureInfo modCulture = new System.Globalization.CultureInfo("en-US");
    modCulture.NumberFormat.CurrencyNegativePattern = 1;
    Thread.CurrentThread.CurrentCulture = modCulture;
}

请参阅http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.currencynegativepattern.aspx。这处理了数字的格式。至于红色,我添加了一个名为“negative”的新css类:

.negative
{
    color: Red;
}

然后在我的 .aspx 文件中:

<% if (item.currency < 0.0M)
{ %>
<span class="negative"><%=String.Format("{0:C}", item.currency)%></span>
<% }
else
{ %>
<span><%=String.Format("{0:C}", item.currency)%></span>
<% } %>

将其放入 css 类的好处是,对于动态站点,如果它稍后变为正数(反之亦然,如果正值变为负数),我可以使用 jQuery 简单地从 span/div 添加或删除该类有问题并将文本设置为默认或红色。

于 2012-07-13T14:58:24.963 回答