2012-03-13 4 views
0

I'm с помощью Telerik сетки с возможностью обновления/редактированияЧисловой формат в Telerik сетки

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

Когда я связать его сетка она выглядеть следующим образом: 5,75

когда я нажмите кнопку Изменить это появится в текстовом поле, как: 5,75

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

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

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

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

-agh

ответ

0

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

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

0

Ok

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

Это идет в MasterPage или _Layout.cshtml

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

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

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

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

Решено!

1

Вы должны использовать «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> 
Смежные вопросы