Отображать символы валюты в сетке - PullRequest
2 голосов
/ 23 мая 2011

Я получаю данные из библиотеки sharepoint в таблице. Для столбца валюты я установил его как индийскую валюту. И я установил spfield.dataformatstring как {0: c}. По умолчанию вместо символа индийской валюты отображается символ $.

Как я могу показать реальный символ валюты?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

Вам нужно передать правильную информацию о культуре в средство форматирования, однако я не уверен, что вы можете сделать это непосредственно в составном форматировании, однако вы можете сделать что-то вроде:

string.Format("The total amount is: {0}", total.ToString("c2",
                                          CultureInfo.CreateSpecificCulture("in-IN"));

Другой вариант - убедиться, что вы правильно установили язык вашей страницы или сайта в целом - очевидно, сервер считает, что он обслуживает страницы по умолчанию в среде en-US.

Обычно это можно сделать для всего сайта в файле web.config, используя элемент <globalization uiCulture="in" culture="in-IN" /> или на уровне страницы в директиве страницы <%@ Page UICulture="in" Culture="in-IN" %>.

При этом SharePoint добавляет некоторую дополнительную сложностьсмешивать, требуя, чтобы сайт был создан на требуемом языке, и, следовательно, на нем должны быть установлены нужные языковые пакеты.

3 голосов
/ 23 мая 2011

Вам необходимо установить правильную культуру .

2 голосов
/ 25 мая 2011

Я получил решение. Вот фрагмент кода:

XmlReader reader = XmlReader.Create(new StringReader(spfield.SchemaXml));
XmlDocument doc = new XmlDocument();
XmlNode node = doc.ReadNode(reader);
string curSymbol = "";
if (node.Attributes["LCID"] != null)
{
    string lcidValue = node.Attributes["LCID"].Value;
    CultureInfo ci = new CultureInfo( Convert.ToInt32(lcidValue));
    curSymbol = ci.NumberFormat.CurrencySymbol;                
}
field.HtmlEncode = false;
field.DataFormatString = curSymbol + " {0:#,###.##}";

Работает нормально, ничего не делая в web.config.

...