2009-08-04 1 views
3

Ich habe eine Bezeichnung (Literal, was auch immer), die mit Währung gefüllt ist ($ 5000,00). Gibt es einen einfachen Weg, um die Cents zu stylen, wie die Schriftgröße kleiner zu machen.Einfache Möglichkeit zum Ändern der Art von Cent in Geld Text

Ich weiß, ich kann die beiden aufteilen, aber ich benutze MVP, und bin auf der Suche nach einem einfachen Weg als die Übergabe all dieser neuen Eigenschaften an die Kontrolle (4 + dieser Etiketten sind vorhanden).

Offen für alle Vorschläge, wie ein neues Steuerelement anstelle des Labels, was auch immer Sie haben.

Antwort

1

Ich würde von der Label-Klasse erben, dann erstellen Sie eine neue Label-Klasse, StyledMoneyLabel. Ich habe diesen Code nicht getestet, aber hoffentlich kommst du auf die Idee.

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

Im Idealfall müssen Sie es wie folgt formatieren.

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

Wie Sie erreichen dies ein bisschen schwierig ist, können Sie einen „Dollar“ und eine „Cents“ Eigenschaft und dann die Zeichenfolge in das Format manipulieren.

3

Ich würde vorschlagen, ein neues Steuerelement zu erstellen, das einfach auf Label/Literal erweitert. Sie können es MoneyLabel nennen, obwohl es wahrscheinlich einfacher wäre mit Literal zu arbeiten. Ab diesem Zeitpunkt können Sie die Render-Methode überschreiben, um die HTML-Ausgabe zu ändern und die Zeichenfolge wie gewünscht zu formatieren.

Referenzieren ist nicht so schwierig, die Seiten müssten auf die Assembly verweisen, in der die Klasse gespeichert ist.

Auf diese Weise Sie sind die Einführung nicht CSS und HTML-Code aus dem Code-Behind, nicht von zusätzlichen JavaScript erstellen zu müssen, was Sie brauchen, und das ist extrem wiederverwendbar und sein darüber, wie Sie .NET-Code bereits

+0

Ich weiß, Sie haben @Scottschulthess mit der Antwort geschlagen, sein Code zur Verfügung gestellt, also gab ich ihm den Kredit. +1 obwohl. – Martin

+0

Danke Martin, und für den Rekord habe ich die Idee von @xximjasonxx sowieso nicht gestohlen :) –

1

Sie könnten verwenden Sie Javascript und lassen Sie den Client alles tun, die schweres Heben ... zB in jquery (Sie müssen die putSpansAroundDollarsAndCents definieren würde() Funktion)

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

$(".currencyToSplit").each(function() { putSpansAroundDollarsAndCents($(this)) }); 
+0

Ich dachte darüber auch vor ein paar Minuten, als wäre es der einfachste Weg (zumindest soweit ich denken konnte)). – Martin

2

ich in einer ideal semantischen Welt nehme an, Sie wahrscheinlich tun würde, etwas wie: -

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

und dann stylen Sie nach Herzenslust.

+0

Das Problem dabei ist, während ich weiß, dass die Aufteilung der Cents vom Dollar-Betrag eine vernünftige Lösung ist, suchte ich nach einer, bei der ich sie nicht aufteilen musste. – Martin

+0

Ich kann nicht sehen, wie Sie es vermeiden können, sie in separate Ausgabeelemente aufzuteilen, wenn Sie jeweils ein spezifisches Styling anwenden möchten. Abgesehen von einigen fiesen JavaScript-Methoden natürlich. –

Verwandte Themen