Kendo UI Inline编辑带有其他文化的Numerictextbox

时间:2014-11-15 02:55:59

标签: asp.net-mvc kendo-ui kendo-grid globalization culture

我正在使用Kendo Grid(版本2014.1.318)在" de-DE"上进行内联编辑文化。因此数字应使用逗号(,)作为小数分隔符,例如:79,5。

网格中的数字文本框在"编辑"时显示预期的格式。模式。这里没问题。但是当我点击"更新"按钮,它发送" 79.5"而不是" 79,5"回到我的服务器。我的服务器配置了" de-DE"文化和ModelBinder无法以该格式处理数字,因此,将ZERO分配给我的变量。

这是一个已知的错误还是我错过了什么?当我使用" en-US"时,一切都很好。文化或任何使用句点(。)作为小数分隔符的文化。

2 个答案:

答案 0 :(得分:0)

您是否包含了kendo.culture.de-DE.min.js文件:

你有没有改变剑道文化:

kendo.culture("de-DE");

最后,您还可以尝试在数字文本框中更改文化:

@Html.Kendo().NumericTextBox().Culture("de-DE")

答案 1 :(得分:0)

我们现在有一年的同样问题。似乎Telerik没有优先解决这个问题,或者我们错过了解决方案。

这就是我们解决它的方式:

将此函数传递给网格创建和更新的数据函数,如下所示:

.Update(update => update.Action("Update", "Gradings").Type(HttpVerbs.Put).Data("convertDecimals")))

function convertDecimals(data) {
  for (var property in data) {
    var value = data[property];
    if (typeof value === "number") {
      // if the number is integer
      if (value % 1 == 0) {
        data[property] = value.toString();
      }
      else {
        data[property] = kendo.toString(value, "n");
      }
    }
  }
}

这是编辑:

.Events(events => events.Edit("replaceDecimalSign"))

function replaceDecimalSign(data) {
  var value = $(data).val();
  var converted = value.toString().replace('.', ',');
  $(data).val(converted);
}

此外,您需要正确的文化设置,例如MohQut回答的内容。

kendo.culture("de-DE");