我在c#中有一个多语言应用程序,带有一个下拉字段来选择项目的持续时间
这是英文的外观
这就是它在德语中的表现
下拉列表应该总是像德语中那样。
这是代码:
/// <summary>
/// Gets or sets the duration.
/// </summary>
[UIHint("CustomGridTime")]
public DateTime Duration { get; set; }
这是模型中的属性
private static WorkTimesViewModel PrepareModel(WorkTimesViewModel model)
{
var newDateTime = DateTime.UtcNow.Date;
newDateTime = newDateTime.AddHours(model.Duration.Hour);
newDateTime = newDateTime.AddMinutes(model.Duration.Minute);
newDateTime = newDateTime.AddSeconds(model.Duration.Second);
model.Duration = newDateTime;
return model;
}
这是我设置值的地方:
np.log
有人能帮助我吗?
最好的问候和Thx
答案 0 :(得分:1)
您可以使用JavaScript设置Kendo的文化。通过在视图中添加文本,在_Layout.cshtml文件中全局设置文化或在本地设置文化。它应该将正确的格式应用于您的TimePicker输入。
<script type="text/javascript">
kendo.culture("de-DE");
</script>
有关更多信息,请参阅Kendo UI文档: https://docs.telerik.com/kendo-ui/framework/globalization/overview
OR
在“Views&gt; [WorkTimes?]&gt; EditorTemplates”文件夹中创建名为CustomGridTime.cshtml的Editor Template。如果EditorTemplates文件夹不存在,请创建它。
@model DateTime
@Html.Kendo().TimePickerFor(m => m).Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE").DateTimeFormat.ShortTimePattern)
然后更改您的网格列。
columns.Bound(p => p.Duration).Title(Html.LabelFor(m => m.Dauer).ToString()).Format("{0:" + System.Globalization.CultureInfo.GetCultureInfo("de-DE").DateTimeFormat.ShortTimePattern + "}").EditorTemplateName("CustomGridTime").Width(80);
答案 1 :(得分:0)
你可以像这样强制当前Thread的文化:
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
有关详细信息,请参阅MSDN文档:https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.110).aspx