2012-03-13 143 views
0

I'm使用Telerik的网格的更新/编辑选项数字格式

当选自分贝为十进制变量它是在此格式编号:5.75

当我它绑定到网格它显示为:5.75

当我按下编辑按钮就出现在文本框为:5.75

但是,当我按下提交按钮它验证为:“本场持续时间必须是数字。 “

我没有格式或小数分隔符属性definded,对于我的文化格式是冰岛,逗号分隔符是正确的。

我在问如何控制Telerik gridcontrol中验证或出现的格式是什么格式?

是否有某种数字格式控件可以在Telerik中更改?

-agh

回答

0

找到了解决办法,你必须把全球化在使区域数量上正确的地方格式化。

这进入母版或_Layout.cshtml

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

而这种进入类似HomeController.cs /索引的页面背后的控制器

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

因为ASP解析机的使用逗号,而不是的点,但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>