Telerik网格中的数字格式
本文关键字:数字 格式 网格 Telerik | 更新日期: 2023-09-27 18:27:41
我正在使用带有更新/编辑选项的Telerik网格
当从db到十进制变量选择数字时,其格式为:5.75
当我将其绑定到网格时,它显示为:5,75
当我按下编辑按钮时,它在文本框中显示为:5,75
但当我按下提交按钮时,它会验证为:"字段持续时间必须是一个数字。"
我没有定义格式或小数分隔符属性,对于我的区域性格式(冰岛语),逗号分隔符是正确的。
我在问我如何控制数字在Telerik网格控制中验证或显示的格式?
Telerik中是否有可以更改的数字格式控件?
-agh
您应该使用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>
您是否在代码后面为页面设置了文化信息?
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
确定
找到解决方案后,您必须打开全球化才能在正确的位置启用区域编号格式。
这将进入主页或_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-
解决了!