Проблемы с десятичным значением в kendoNumericTextBox asp.net mvc

У меня следующая проблема. Работая с приложением на польском языке Culture, скрипты kendo.culture.pl-PL.min.js и kendo.messages.pl-PL.min.js загружаются правильно, я могу проверить это в консоли: после выдачи kendo.culture() I get object {name: "pl-PL", numberFormat: Object,....

На мой взгляд, я использую

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

где LimitMax является десятичным со значением 200. Когда мое представление отображается, я не вижу значения в KendoNumericTextBox - если я хочу получить его, я получаю ноль.

Я попытался исследовать проблему и обнаружил, что: 1) входные данные, сгенерированные помощником, выглядят так:

<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")

но этот путь не кажется мне правильным.

Не могли бы вы дать какие-либо идеи, как решить эту проблему?

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);
    } 
}
Другие вопросы по тегам