在网格中显示货币符号

时间:2011-05-23 12:16:40

标签: c# asp.net sharepoint currency

我正在从表中的sharepoint库中检索数据。对于货币列,我将其设置为印度货币。我将spfield.dataformatstring设置为{0:c}。它默认显示$符号而不是印度货币符号。

如何显示实际货币符号?

提前致谢。

3 个答案:

答案 0 :(得分:4)

您需要将correct culture information传递给格式化程序,但我不确定您是否可以在复合格式中直接执行此操作,但是您可以执行以下操作:

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在组合中增加了一些额外的复杂性,要​​求使用所需的语言创建网站,因此要在其上安装正确的语言包。

答案 1 :(得分:3)

您需要设置正确的culture

答案 2 :(得分:2)

我得到了解决方案。以下是代码段:

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中做任何事情,它工作正常。