ASP.NET在Designer中正确格式化显示钱

时间:2014-10-26 22:40:14

标签: javascript c# asp.net .net

在后面的代码中,我有如下属性:

private decimal _myCodeBehindVariable;
public decimal myCodeBehindVariable
{
    get { return _myCodeBehindVariable; }
    set { _myCodeBehindVariable = value; }
}

在设计师中我得到这个变量的值:

<%=myCodeBehindVariable%>

但是我需要使用$和属性格式化它。所以它看起来像这样:35.99美元

计划使用accounting.js(http://josscrowcroft.github.io/accounting.js/),我可以这样做以显示asp标签中的金额

<asp:Label ID="Label1" runat="server"><%=myCodeBehindVariable%></asp:Label>

问题是如何应用js我需要像

这样的东西
accounting.formatMoney(<%=myCodeBehindVariable%>); <- this does not work!

我决定使用代码隐藏并显示在其中的格式化钱。将我的代码更改为:

    private string _myCodeBehindVariable;
    public string myCodeBehindVariable
    {
        get { return _myCodeBehindVariable; }
        set { _myCodeBehindVariable = value; }
    }

稍后在代码中......             decimal theAmount = -9999.77m;

        myCodeBehindVariable = theAmount.ToString("C2", CultureInfo.CreateSpecificCulture("en-US"));

这样我就可以保持&lt;%= myCodeBehindVariable%&gt;在设计师。

1 个答案:

答案 0 :(得分:0)

如果不对背景有更深入的了解,我会考虑这些方法。

  1. 如果标签是在运行时确定的,则这意味着某种数据绑定。在这种情况下,您可能需要数据绑定表达式<%# ... %>而不是内联表达式<%= ... %>

  2. 如果您仍在使用JavaScript来显示所需内容,那么ASP.NET标签是否真的必要(即<asp:Label ID="Label1" runat="server">)?这最终将在HTML中呈现为<div>。因此,如果您没有特别需要代码隐藏中的标签,我会考虑放弃它,让ASP.NET吐出您需要的值,只需让JavaScript执行格式化小数的表示逻辑{{ 1}}作为HTML占位符。这种方法的另一个优点是它可以使您的页面更轻量级,并避免任何ASP.NET ViewState的肮脏。

  3. 或者,如果您不需要特别使用该特定的JavaScript库,那么纯C#中的简单<div>也许就可以了。您可以在.aspx页面或代码隐藏中执行此操作。