我正在使用Kendo Grid(版本2014.1.318)在" de-DE"上进行内联编辑文化。因此数字应使用逗号(,)作为小数分隔符,例如:79,5。
网格中的数字文本框在"编辑"时显示预期的格式。模式。这里没问题。但是当我点击"更新"按钮,它发送" 79.5"而不是" 79,5"回到我的服务器。我的服务器配置了" de-DE"文化和ModelBinder无法以该格式处理数字,因此,将ZERO分配给我的变量。
这是一个已知的错误还是我错过了什么?当我使用" en-US"时,一切都很好。文化或任何使用句点(。)作为小数分隔符的文化。
答案 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");