Telerik网格中的数字格式

本文关键字:数字 格式 网格 Telerik | 更新日期: 2023-09-27 18:27:41

我正在使用带有更新/编辑选项的Telerik网格

当从db到十进制变量选择数字时,其格式为:5.75

当我将其绑定到网格时,它显示为:5,75

当我按下编辑按钮时,它在文本框中显示为:5,75

但当我按下提交按钮时,它会验证为:"字段持续时间必须是一个数字。"

我没有定义格式或小数分隔符属性,对于我的区域性格式(冰岛语),逗号分隔符是正确的。

我在问我如何控制数字在Telerik网格控制中验证或显示的格式?

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

-agh

Telerik网格中的数字格式

您应该使用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-

解决了!