Asp.net mvc 具有其他区域性的KendoUI内联编辑数字文本框
我正在使用剑道网格(2014.1.318版),并对“de de”文化进行内联编辑。因此,数字应该使用逗号(,)作为十进制分隔符,例如:79,5 在“编辑”模式下,网格中的数字文本框显示预期格式。没问题。但当我点击“更新”按钮时,它将“79.5”而不是“79,5”发送回我的服务器。我的服务器配置了“de de”区域性,ModelBinder无法处理该格式的数字,因此,将零分配给我的变量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”区域性或任何使用句点(.)作为小数分隔符的区域性时,一
这是一个已知的错误还是我遗漏了什么?当我使用“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");
这有用吗?我已经在服务器端和客户端使用了相同的区域性,但不起作用。正如我已经提到的
网格中的数字文本框在“编辑”模式下显示预期的格式。没问题。
,当然我已经做了你提到的那些。否则我不会说正在显示预期的格式。