我有一個標籤(文字,無論),是充滿貨幣($ 5000.00)。有沒有一種簡單的方法來設計美分,例如縮小字體大小。我知道我可以分開兩個,但我正在使用MVP,並尋找一種簡單的方式,而不是將所有這些新屬性傳遞給控件(這些標籤中有4個以上)。簡單的方法來改變貨幣文本中的分數
對任何建議都開放,如新控件而不是標籤,無論你有什麼建議。
我有一個標籤(文字,無論),是充滿貨幣($ 5000.00)。有沒有一種簡單的方法來設計美分,例如縮小字體大小。我知道我可以分開兩個,但我正在使用MVP,並尋找一種簡單的方式,而不是將所有這些新屬性傳遞給控件(這些標籤中有4個以上)。簡單的方法來改變貨幣文本中的分數
對任何建議都開放,如新控件而不是標籤,無論你有什麼建議。
我會從標籤類繼承,然後創建一個新的標籤類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
}
}
理想情況下,您需要像下面那樣格式化它。
$5000.<span class="Cents">00</span>
你如何做到這一點是有點棘手,你可以有一個「元」和「仙」屬性,然後操縱串入格式。
我會建議創建一個新的控件,只是擴展到標籤/文字。您可以將其稱爲MoneyLabel,但Literal可能更容易處理。從這一點開始,您可以重寫Render方法來更改HTML輸出,並根據需要格式化字符串。
引用它並不那麼棘手,頁面需要引用存儲該類的程序集。
這樣,你是不是從代碼隱藏引入CSS和HTML,不必從你所需要的額外的創建JavaScript的,這是非常可重複使用和它進入你如何編寫.NET已經
你可以使用JavaScript,讓客戶做所有的繁重......例如,在jQuery的(你必須定義putSpansAroundDollarsAndCents()函數)
<div class="currencyToSplit">$5000.00</div>
$(".currencyToSplit").each(function() { putSpansAroundDollarsAndCents($(this)) });
我也在幾分鐘前考慮過這個問題,因爲它是最簡單的方法(至少據我所能想到的)。 – Martin 2009-08-04 19:10:34
我的理想意義世界,你可能會做假設例如: -
<span class="currency-symbol">£</span>
<span class="major-currency-unit">5000</span>
<span class="decimal-point">.</span>
<span class="minor-currency-unit">00</span>
然後風格去你心中的內容。
我知道你擊敗@scottschulthess的答案,他確實提供了代碼,所以我給了他信用。 +1雖然。 – Martin 2009-08-05 02:33:23
感謝Martin,並且爲了記錄我沒有從@xximjasonxx竊取我的想法:) – 2009-08-05 12:39:01