我在我的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(因为这是我上面列出的最大值)。无论如何要调和这个?
答案 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小部件之前格式化数字
<script src="kendo.culture.de-DE.js"></script>