kendo UI数字文本框文化无法正确翻译

时间:2015-10-12 15:18:20

标签: asp.net-mvc kendo-ui kendo-asp.net-mvc

我在我的MVC网站上使用绑定到对象的数字文本框,例如:

@Html.Kendo().NumericTextBoxFor(m =>  m.Latitude).Decimals(8).Min(-90).Max(90).Step(.01)

Latitude对象只是一个看起来像这样的属性:

public double? Latitude { get; set; }

我的网站可以在两种不同的文化中显示,都可以从同一个数据库中获取数据。因此,数据库中保存的值看起来像'48 .33900606'等。这在我的en-US网站上运行正常,但在我的de-DE网站上,编辑时根本没有显示该值。如果我输入'48,33900606',它工作正常,我可以保存,它可以保存为双倍。如果我'编辑',数字文本框加载该值,它只是空白。如果我点击该框,我可以看到'4833900606'没有逗号,没有句号,但是当我点击它时它变为90,00(因为这是我上面列出的最大值)。无论如何要调和这个?

2 个答案:

答案 0 :(得分:2)

虽然这个问题有点陈旧,但对于在最新浏览器上使用Kendo NumericTextbox的人来说,它可能会有用。您需要在NumericTextbox声明中添加以下代码以覆盖type =" numeric"属性:

.HtmlAttributes( new { type="text" } )

我刚发现这是因为某些浏览器版本中的浏览器验证了输入值的type属性(我在Chrome 56.0.2924.87上得到了这个)。这个浏览器设置似乎在验证过程中弄乱了值,我得到的问题是数字文本框为空白

在加载数字文本框期间,我收到一个控制台警告,说明:

  

指定值" 5,00"不是有效的数字。值必须匹配   到以下正则表达式:   ? - (\ d + | \ d + \ d + |。。\ d +)?(?[EE] [ - +] \ d +)

答案 1 :(得分:0)

您需要在de-DE

中工作时设置文化

添加到您的页面

$FilePath = "C:\ShareList.csv"
$List = Import-CSV $FilePath
foreach($Folder in $List.Folder)
{
Do something for each folder.
}

设置文化

$FilePath = "C:\ShareList.csv"
$List = Import-CSV $FilePath
foreach($Folder in $List.Folder)
{
$acls = $Folder.Access
foreach($acl in $Acls)
    {
    $acl
    }
}

Kendo reference

Tutorial

<强>更新

在这种情况下,我建议在将数字发送到Kendo小部件之前格式化数字

 <script src="kendo.culture.de-DE.js"></script>