我有一个中继器。中继器中的一项是标签。此标签应显示 TaxRate 值。我可以使用以下标记来做到这一点。
<asp:Label ID="lblTaxRate" runat="server" Text = ' <%# Eval("TaxRate") %>'></asp:Label>
现在,我需要$
在税率值之前添加一个符号。我们如何仅使用 ASP.Net 标记来做到这一点?
注意:预计不会使用 javascritpt 的解决方案。
注意:我不能用任何其他控件替换标签或摆脱标签
这应该这样做:
<asp:Label ID="lblTaxRate" runat="server" Text = ' <%# Eval("TaxRate", "${0}") %>'></asp:Label>
这有效,并考虑了货币的文化差异
'<%# Eval("TaxRate","{0:C2}") %>'
感谢@nunespascal 的回答。
<asp:Label ID="lblTaxRate" runat="server" Text = '<%# String.IsNullOrEmpty(Convert.ToString(Eval("TaxRate"))) == true ? "" : Eval("TaxRate", "${0}")%> ' > </asp:Label>
改进
<%# String.Format("{0:C}", Eval("Amount") ) %>
或者
<%# ((double)Eval("Amount")).ToString("C") %>
许多年后,在处理一些遗留代码时,我遇到了类似的问题。Eval 格式的重载也可用于任何自定义字符串。
在我的场景中:
//Displayed regardless there is a value to evaluate or not.
<%#Eval("ContractLength") + " Years" %>
//Displayed only when there is a value to evaluate.
<%#Eval("ContractLength","{0} Years") %>
在您的情况下:
//Displayed regardless there is a value to evaluate or not.
<%#"$" + Eval("TaxRate") %>
//Displayed only when there is a value to evaluate.
<%#Eval("TaxRate","${0}") %>