Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 具有其他区域性的KendoUI内联编辑数字文本框_Asp.net Mvc_Kendo Ui_Kendo Grid_Globalization_Culture - Fatal编程技术网

Asp.net mvc 具有其他区域性的KendoUI内联编辑数字文本框

Asp.net mvc 具有其他区域性的KendoUI内联编辑数字文本框,asp.net-mvc,kendo-ui,kendo-grid,globalization,culture,Asp.net Mvc,Kendo Ui,Kendo Grid,Globalization,Culture,我正在使用剑道网格(2014.1.318版),并对“de de”文化进行内联编辑。因此,数字应该使用逗号(,)作为十进制分隔符,例如:79,5 在“编辑”模式下,网格中的数字文本框显示预期格式。没问题。但当我点击“更新”按钮时,它将“79.5”而不是“79,5”发送回我的服务器。我的服务器配置了“de de”区域性,ModelBinder无法处理该格式的数字,因此,将零分配给我的变量 这是一个已知的错误还是我遗漏了什么?当我使用“en-US”区域性或任何使用句点(.)作为小数分隔符的区域性时,一

我正在使用剑道网格(2014.1.318版),并对“de de”文化进行内联编辑。因此,数字应该使用逗号(,)作为十进制分隔符,例如:79,5

在“编辑”模式下,网格中的数字文本框显示预期格式。没问题。但当我点击“更新”按钮时,它将“79.5”而不是“79,5”发送回我的服务器。我的服务器配置了“de de”区域性,ModelBinder无法处理该格式的数字,因此,将零分配给我的变量


这是一个已知的错误还是我遗漏了什么?当我使用“en-US”区域性或任何使用句点(.)作为小数分隔符的区域性时,一切都很好。

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

你是否改变了剑道文化:

kendo.culture("de-DE");
最后,您还可以尝试更改数字文本框中的区域性:

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

一年来,我们一直面临着同样的问题。看来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回答的alreay

kendo.culture("de-DE");

这有用吗?我已经在服务器端和客户端使用了相同的区域性,但不起作用。正如我已经提到的
网格中的数字文本框在“编辑”模式下显示预期的格式。没问题。
,当然我已经做了你提到的那些。否则我不会说
正在显示预期的格式。