【问题标题】:Wrong currency unit in Kendo剑道的货币单位错误
【发布时间】:2015-07-24 17:45:54
【问题描述】:

在我的网站中,我使用剑道网格。 在该网格中,有一列“金额”包含以下值:

您看到金额前有美元符号,但我想要欧元符号。

全球化文化设置是正确的,因为当我在网格外显示金额时,它会显示带有欧元符号的金额。

我正在使用 ASP.NET MVC5 开发这个网站。 在我的模型中,我有这个属性:

[DisplayFormat(DataFormatString = "{0:c}")]
public decimal Amount { get; set; }

您看到我将字符串格式化为货币(并且我的全球化文化设置是正确的)

谁能帮帮我?

注意:将金额转换为字符串不是一个选项,因为我必须对该列进行排序。而对于字符串,它无法像普通小数那样对数字进行排序。字符串将按 "1, 11, 2, 20, 3" 而不是 "1, 2, 3, ..." 进行排序

【问题讨论】:

  • 不知道,但我认为这是一个 UI 问题,需要在 kendo 中进行配置。此外,您可以放下文本列您的数字列,显示文本并按(隐藏)数字列排序。不是最佳的,但一种解决方法。
  • 是的,我已经尝试过您的建议,但是用户需要在单击列标题时选择升序或降序。
  • 你也可以破解它。无论如何,真正的解决方案是让 Kendo 使用正确的格式。祝你好运。
  • 我认为可以通过设置正确的文化来更改货币单位。但这并没有改变我剑道网格中的货币单位。它确实改变了剑道网格之外的货币单位......

标签: asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc displayformat


【解决方案1】:

当您说您已包含正确的全球化设置时,您是如何做到这一点的,例如通过 web.config 像:

  <system.web>
    <globalization culture="en-GB" uiCulture="en-GB" />
  </system.web>

或通过 C# 例如

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-GB"); 

假设这些是您为您的网站设置文化的方式,您是否还包括相关的剑道文化脚本到您的网站:

例如。

<script src="@Url.Content("~/Scripts/kendo/2015.1.511/cultures/kendo.culture.en-GB.min.js")"></script>

注意:将版本和文化设置更改为您的版本和所需的文化,例如fr-FR、en-US 等 然后像这样设置包含的文化:

<script type="text/javascript">
      kendo.culture("en-GB");
</script>

注意:更改您在文化脚本中指定的任何文化的 en-GB。

这将设置所有剑道控件使用相同的文化,您不必为每个控件指定它。

查看此链接了解更多详情:Kendo Globalization Help

希望这会对您有所帮助。任何问题让我知道,希望我们能找出为什么使用 en-US 设置(它是 kendo 控件的默认语言)

【讨论】:

  • 我会在那个星期一试试
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多