1

我有一个中继器。中继器中的一项是标签。此标签应显示 TaxRate 值。我可以使用以下标记来做到这一点。

<asp:Label ID="lblTaxRate" runat="server" Text = '  <%# Eval("TaxRate")  %>'></asp:Label>

现在,我需要$在税率值之前添加一个符号。我们如何仅使用 ASP.Net 标记来做到这一点?

注意:预计不会使用 javascritpt 的解决方案。

注意:我不能用任何其他控件替换标签或摆脱标签

4

5 回答 5

3

尝试:

<%# DataBinder.Eval(Container.DataItem, "TaxRate", "{0:c}") %>

(从这里

于 2012-09-13T07:44:23.573 回答
2

这应该这样做:

<asp:Label ID="lblTaxRate" runat="server" Text = '  <%# Eval("TaxRate", "${0}") %>'></asp:Label>
于 2012-09-13T07:46:18.820 回答
2

这有效,并考虑了货币的文化差异

'<%# Eval("TaxRate","{0:C2}") %>'
于 2019-11-28T00:40:55.653 回答
1

感谢@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") %>
于 2013-02-10T17:14:57.693 回答
1

许多年后,在处理一些遗留代码时,我遇到了类似的问题。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}") %>
于 2020-12-09T16:57:12.553 回答