【问题标题】:Problems with decimal value in kendoNumericTextBox asp.net mvckendoNumericTextBox asp.net mvc中的十进制值问题
【发布时间】:2017-04-28 10:57:12
【问题描述】:

我有以下问题。使用波兰文化中的应用程序,脚本 kendo.culture.pl-PL.min.js 和 kendo.messages.pl-PL.min.js 正确加载,我可以在控制台中检查它:发出 kendo.culture() 后我获取对象 {name: "pl-PL", numberFormat: Object,....

在我看来,我正在使用

@Html.Kendo().NumericTextBoxFor(m => m.LimitMax)

其中 LimitMax 是十进制,值为 200。当我的视图呈现时,我在 KendoNumericTextBox 中看不到任何值 - 如果我想检索它,我会得到 null。

我试图调查这个问题,我发现: 1)helper生成的输入是这样的:

<input data-val="true" data-val-number="Pole musi być liczbą." data-val-range="Pole musi być z zakresu od 0 do 2147483647." data-val-range-max="2147483647" data-val-range-min="0" id="LimitMax" name="LimitMax" type="number" value="200,0000" />

2) 是 jQuery 在控制台中给我以下消息:

The specified value "200,0000" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

我可以通过设置来解决这个问题:

@Html.Kendo().NumericTextBoxFor(m => m.LimitMax).Culture("en-US")

但这种方式对我来说似乎不合适。

您能否提供解决此问题的任何想法?

【问题讨论】:

  • 你的 mvc 应用有什么文化?在Thread.CurrentThread.CurrentCultureThread.CurrentThread.CurrentUICulture?它们是否也都设置为pl-PL?如果没有尝试设置它并检查它是否有帮助。
  • 正确设置为 pl-PL,这就是 Razor 将十进制值渲染为 200,000 的原因。为了仔细检查,我在视图中渲染了 @Thread.CurrentThread.CurrentCulture 并显示 pl-PL

标签: jquery asp.net asp.net-mvc kendo-ui kendonumerictextbox


【解决方案1】:

不幸的是,我自己和互联网都没有找到任何解决方案。我不得不稍微修改一下,在视图渲染后我做了以下技巧:

if ($("#LimitMax").data("kendoNumericTextBox").value() === null) {
    var rawValue = $("#LimitMax").attr("value");
    if (rawValue) {
        rawValue = rawValue.replace(",", ".");
    }
    if ($.isNumeric(rawValue)) {
        $("#LimitMax").data("kendoNumericTextBox").value(rawValue);
    } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多