1

我正在使用 Kendo numericTextBox 来显示货币。我需要根据所选货币格式化值。我能够为“en-US”和“de-DE”正确格式化货币,但我无法正确格式化货币以适应具有不同组大小的文化。

Kendo 博客中的所有示例和示例都在具有相似组大小的“en-US”和“de-DE”上。

对于“en-US”货币groupSize属性[3]意味着每个组将在 3 位数字后分隔,例如1,000,000. 但是对于其他一些具有不同分组的文化,例如具有 'groupSize' equals 的“en-IN”,kendo[3,2,0]仍然将数字分组为 3 组1,000,000,而我们希望分组是 3 位数字,然后是分隔符,然后是组2 位数等:10,00,000.

谁能帮我解决这个问题?

这是我的代码示例:http ://dojo.telerik.com/@jayesh-jayakumar/AtojA/8

4

1 回答 1

0

所以问题是你使用的是旧的 KendoUI 版本,没有实现这个功能。这是最新剑道版本的片段,看起来它的行为不同:http en-IN: //dojo.telerik.com/aqEwun

但是,我不确定这是否正是它在这种文化中的工作方式,因为它只创建 2 组数字,正如您在我的示例中看到的那样(从小数点分隔符来看,它是 2 组、3 组和其余数字)。

编辑:

因此,正如您所提到的,您希望在示例中具有不同的行为(从小数点开始,一组 3 位,然后是 2 组)。看来这是一个错误,也许 Telik 有一天会修复它。在此之前,您可以将groupSize文化对象中的值从 [3, 2, 0] 更改为 [3, 2] 以实现您想要的。

要在所有链接的文化中全局修复它,您可以使用以下代码:

  for(var i in kendo.cultures){
    var culture = kendo.cultures[i];
    if(JSON.stringify(culture.numberFormat.groupSize) === '[3,2,0]'){
      culture.numberFormat.groupSize = [3, 2];
    }
    if(JSON.stringify(culture.numberFormat.currency.groupSize) === '[3,2,0]'){
      culture.numberFormat.currency.groupSize = [3, 2];
    }
    if(JSON.stringify(culture.numberFormat.percent.groupSize) === '[3,2,0]'){
      culture.numberFormat.percent.groupSize = [3, 2];
    }
  }

PS。您可以考虑使用比JSON.stringify().

更新片段:http ://dojo.telerik.com/aqEwun/3

于 2017-02-21T11:30:34.097 回答