Простой способ изменить стиль центов в денежном тексте - PullRequest
3 голосов
/ 04 августа 2009

У меня есть ярлык (буквальный, что угодно), который заполняется валютой ($ 5000,00). Есть ли простой способ стилизовать центы, например, уменьшить размер шрифта.

Я знаю, что могу разделить их на две части, но я использую MVP и ищу более простой способ, чем передать все эти новые свойства элементу управления (присутствует 4+ этих меток).

Открыто для любых предложений, таких как новый элемент управления вместо ярлыка, что бы вы ни получили.

Ответы [ 5 ]

3 голосов
/ 04 августа 2009

Я бы предложил создать новый элемент управления, который просто распространяется на Label / Literal. Вы можете назвать это MoneyLabel, хотя с Literal, вероятно, будет проще работать. С этого момента вы можете переопределить метод Render, чтобы изменить вывод HTML, отформатировать строку так, как вам нравится.

Ссылаясь на это не так сложно, страницы должны ссылаться на сборку, где хранится класс.

Таким образом, вы не вводите CSS и HTML из исходного кода, вам не нужно создавать дополнительный JavaScript из того, что вам нужно, и это очень многократно используется и влияет на то, как вы пишете .NET уже

2 голосов
/ 05 августа 2009

Полагаю, в идеальном семантическом мире вы, вероятно, сделаете что-то вроде: -

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

, а затем погрузитесь в душу.

1 голос
/ 05 августа 2009

Я бы унаследовал от класса меток, а затем создал бы новый класс меток, 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
     }
}
1 голос
/ 04 августа 2009

Вы можете использовать javascript и позволить клиенту выполнять всю тяжелую работу ... например, в jquery (вам нужно определить функцию putSpansAroundDollarsAndCents ())

<div class="currencyToSplit">$5000.00</div>

$(".currencyToSplit").each(function() { putSpansAroundDollarsAndCents($(this)) });
1 голос
/ 04 августа 2009

В идеале вам нужно отформатировать его следующим образом.

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

Как сделать это немного сложно, вы можете иметь свойство "Dollars" и "Cents", а затем манипулировать строкой в ​​формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...