使用ASP.Net标记进行Eval格式化(仅限)

时间:2012-09-13 07:42:53

标签: c# asp.net .net

我有一个转发器。转发器中的一个项目是标签。此标签应显示TaxRate值。我可以使用以下标记来完成此操作。

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

现在,我需要在税率值之前添加$符号。我们怎样才能使用ASP.Net标记呢?

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

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

6 个答案:

答案 0 :(得分:2)

尝试:

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

(来自here

答案 1 :(得分:2)

这应该这样做:

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

答案 2 :(得分: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") %>

答案 3 :(得分: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}") %>

答案 4 :(得分:0)

这段代码应该可以使用

<%#"$" + Eval("TaxRate") %>'>

答案 5 :(得分:0)

这可行,并考虑了货币的文化差异

'<%# Eval("TaxRate","{0:C2}") %>'