Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 更改货币文本中美分样式的简单方法_Asp.net_Css - Fatal编程技术网

Asp.net 更改货币文本中美分样式的简单方法

Asp.net 更改货币文本中美分样式的简单方法,asp.net,css,Asp.net,Css,我有一个标签(文字,随便什么),里面装满了货币($5000.00)。有没有一种简单的方法来设计美分的样式,比如缩小字体大小 我知道我可以将两者分开,但我正在使用MVP,并且正在寻找一种简单的方法,而不是将所有这些新属性传递给控件(存在4+个标签) 接受任何建议,比如一个新控件而不是标签,无论你得到什么。理想情况下,你需要像下面这样格式化它 $5000.<span class="Cents">00</span> 5000.00美元 如何实现这一点有点棘手,可以使用“美元

我有一个标签(文字,随便什么),里面装满了货币($5000.00)。有没有一种简单的方法来设计美分的样式,比如缩小字体大小

我知道我可以将两者分开,但我正在使用MVP,并且正在寻找一种简单的方法,而不是将所有这些新属性传递给控件(存在4+个标签)


接受任何建议,比如一个新控件而不是标签,无论你得到什么。

理想情况下,你需要像下面这样格式化它

$5000.<span class="Cents">00</span>
5000.00美元

如何实现这一点有点棘手,可以使用“美元”和“美分”属性,然后将字符串转换为格式。

我建议创建一个新控件,该控件仅扩展为Label/Literal。您可以称之为MoneyLabel,尽管文字可能更容易使用。从那时起,您可以重写Render方法来更改HTML输出,并根据需要格式化字符串

引用它并不复杂,页面需要引用存储类的程序集


通过这种方式,您不必从codebehind引入CSS和HTML,也不必根据需要创建额外的JavaScript,而且这是非常可重用的,并且它已经融入到您编写.NET的方式中了

您可以使用JavaScript并让客户机完成所有繁重的工作……例如,在jquery中(您必须定义PutspansRoundDollarSandCents()功能)

5000.00美元
$(“.currencyToSplit”).each(function(){putSpansAroundDollarsAndCents($(this))});

我想在一个理想的语义世界中,你可能会这样做:-

<span class="currency-symbol">£</span>
<span class="major-currency-unit">5000</span>
<span class="decimal-point">.</span>
<span class="minor-currency-unit">00</span>
)
5000
.
00

然后随心所欲地设计样式。

我将继承label类,然后创建一个新的label类StyledMoneyLabel。 我还没有测试过这段代码,但希望你能理解

class StyledMoneyLabel : Label
{
    double money = 0.0;

    Render(HtmltextWriter)
    {
        HtmlSpan dollars = new HtmlSpan(CSS_CLASS);
        dollars.Text = money.ToString(FORMAT_STRING_FOR_GETTING_DOLLARS.
        ///etc for decimals and so forth
     }
}

我几分钟前也考虑过这一点,因为这是最简单的方法(至少在我看来是这样)。问题是,虽然我知道从美元金额中分割美分是一个合理的解决方案,我正在寻找一个不需要拆分它们的元素。如果要为每个元素应用特定的样式,我看不出如何避免将它们拆分为单独的输出元素。当然,除了一些讨厌的JavaScript方法之外。我知道你的答案比@scottschulthess好,他的的确提供了代码,所以我给了他荣誉+1尽管如此。谢谢Martin,而且为了记录在案,我没有从@xximjasonxx那里窃取这个想法:)
class StyledMoneyLabel : Label
{
    double money = 0.0;

    Render(HtmltextWriter)
    {
        HtmlSpan dollars = new HtmlSpan(CSS_CLASS);
        dollars.Text = money.ToString(FORMAT_STRING_FOR_GETTING_DOLLARS.
        ///etc for decimals and so forth
     }
}