在后面的代码中,我有如下属性:
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;在设计师。
答案 0 :(得分:0)
如果不对背景有更深入的了解,我会考虑这些方法。
如果标签是在运行时确定的,则这意味着某种数据绑定。在这种情况下,您可能需要数据绑定表达式<%# ... %>
而不是内联表达式<%= ... %>
。
如果您仍在使用JavaScript来显示所需内容,那么ASP.NET标签是否真的必要(即<asp:Label ID="Label1" runat="server">
)?这最终将在HTML中呈现为<div>
。因此,如果您没有特别需要代码隐藏中的标签,我会考虑放弃它,让ASP.NET吐出您需要的值,只需让JavaScript执行格式化小数的表示逻辑{{ 1}}作为HTML占位符。这种方法的另一个优点是它可以使您的页面更轻量级,并避免任何ASP.NET ViewState的肮脏。
或者,如果您不需要特别使用该特定的JavaScript库,那么纯C#中的简单<div>
也许就可以了。您可以在.aspx页面或代码隐藏中执行此操作。