Числовой формат в сетке Telerik - PullRequest
1 голос
/ 13 марта 2012

Я использую сетку Telerik с возможностью обновления / редактирования

Если число выбрано из числа в дБ для десятичной переменной, оно имеет следующий формат: 5,75

Когда я привязываю его к сетке, он выглядит как: 5,75

Когда я нажимаю кнопку «Редактировать», в текстовом поле она отображается как: 5,75

Но когда я нажимаю кнопку отправки, оно подтверждается как: «Поле Duration должно быть числом».

У меня не определены свойства формата или десятичного разделителя, для моего культурального формата, который является исландским, разделитель запятой правильный.

Я спрашиваю, как я могу контролировать, в каком формате номер проверяется или отображается в Telerik gridcontrol?

Существуют ли какие-либо числовые элементы управления форматом, которые могут быть изменены в Telerik?

-agh

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Вы должны использовать «globalize.js» из http://github.com/jquery/globalize

Это решит вашу проблему с проверкой числа, т. Е. «Продолжительность поля должна быть числом».

Например

<script src='@Url.Content("~/Scripts/Globalize/globalize.js")' type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/Globalize/cultures/globalize.culture.de-DE.js")' type="text/javascript"></script>
<script type="text/javascript">
    $.validator.methods.number = function (value, element) { return this.optional(element) || !isNaN(Globalize.parseFloat(value)); }
    $(function () {
        Globalize.culture('de-DE'); 
    });
</script>

или

<script src='@Url.Content("~/Scripts/Globalize/globalize.js")' type="text/javascript"></script>
<script src='@Url.Content("~/Scripts/Globalize/cultures/globalize.culture." + System.Threading.Thread.CurrentThread.CurrentCulture.Name + ".js")' type="text/javascript"></script>
<script type="text/javascript">
    $.validator.methods.number = function (value, element) { return this.optional(element) || !isNaN(Globalize.parseFloat(value)); }
    $(function () {
        Globalize.culture('@(System.Threading.Thread.CurrentThread.CurrentCulture.Name)'); 
    });
</script>
0 голосов
/ 14 марта 2012

ОК

Нашли решение, вам нужно включить глобализацию, чтобы включить форматирование региональных номеров в правильном месте.

Это идет на главную страницу или _Layout.cshtml

@(Html.Telerik().ScriptRegistrar().Globalization(true))

И это относится к контроллеру за страницей, как HomeController.cs / Index

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("is-IS");

Поскольку машина разбора asp использует запятую вместо точки, но проверка JQuery игнорировала это и использовала стандартную, которая былаUs-us или En-en

Решено!

0 голосов
/ 13 марта 2012

Вы установили информацию о своей культуре для страницы в выделенном коде?

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("is-IS");

Это решение было представлено для http://www.telerik.com/community/forums/aspnet-ajax/grid/culture-aware-number-formatting.aspx и http://www.telerik.com/community/forums/aspnet-ajax/grid/gridnumericcolumn-in-edit-mode-doesn-180-t-use-current-culture.aspx

...