2009-04-17 135 views
7

我正在使用infragistics webgrid並需要格式化貨幣字符串。爲此,我需要一個包含「$ ### ###,00」這樣的模式的字符串,我希望這個字符串能夠從我目前的CultureInfo中獲得。我怎樣才能做到這一點? 我需要從信息中手動編寫它:asp.net中的貨幣格式字符串

CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSeparator 
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyGroupSizes 
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalDigits 
CultureInfo.CreateSpecificCulture(myLanguageId).NumberFormat.CurrencyDecimalSeparator 

等 等 等

的是一個單行的解決方案?

回答

1

感謝您的所有答案。 事實證明我的要求是錯誤的。 infragistics網格不希望模式字符串知道哪些分隔符使用,它使用模式字符串作爲小數,然後查詢當前的文化。 所以這是一個非問題。無論如何感謝 !

10
decimal moneyvalue = 1921.39m; 
string s = String.Format("{0:C}", moneyvalue); 

將使用當前的文化。

確保你在你的web.config以下:

<system.web> 
    <globalization culture="auto" uiCulture="auto"/> 
</system.web> 

或CK表明,申報相當於在你的頁面

+0

好吧,不完全。我不想自己做實際的轉換,只是得到模式字符串。 像這樣: string myPattern = CreateCurrencyPattern(myCurrentCulture); ,然後myPattern將包含帶有或不帶貨幣符號的「$ ###,###,###。00」。 – 2009-04-17 09:19:07

0

添加到格雷格院長的回答,您可能需要有

Culture="auto" UICulture="auto" 

在頁面的@Page聲明中。

0

首先 - 如果您是文化特定的,爲什麼不直接使用「C」作爲格式字符串,並因此使用文化的貨幣格式。

Custom numeric format strings沒有貨幣標記;不過,我懷疑你可以將currency symbol附加到從「### ###,00」格式化的字符串中。

0

我們在我們的項目中有幾乎相似的要求。 我們所做的就是使用infragistics的webcurrencyedit控制,將其設置爲需要顯示貨幣的列的editorcontrolid,然後設置webcurrencyedit控件的區域性。