我使用Trent Richardson的JQuery datetimepicker扩展,通过NuGet获得: http://trentrichardson.com/examples/timepicker/
Trent的文档说您可以创建一个本地化的datetimepicker,如下所示:
$('#basic_example_4').timepicker(
$.timepicker.regional['es']
);
我通过在TextBox上设置CssClass属性将datetimepicker附加到ASP.NET TextBox,并让JavaScript通过选择CSS类来附加datetimepicker:
<script type="text/javascript">
$(document).ready(function () {
$('.calendarStartDateTime').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm TT',
controlType: 'select',
oneLine: true
});
});
</script>
...
<asp:TextBox ID="StartDateTime" runat="server" CssClass="calendarStartDateTime" meta:resourcekey="StartDateTimeResource1"></asp:TextBox>
我的ASP.NET页面声明设置culture="auto"
和uiculture="auto"
,以便所有ASP.NET元素从浏览器设置中获取文化设置(因此我可以使用ASP.NET资源来本地化文本)。
我希望datetimepicker还能根据浏览器设置自动应用本地化,与服务器端组件的本地化方式一致。我该如何实现这一目标?我是否需要在Javascript中插入ASP.NET标记,例如:
<script type="text/javascript">
$(document).ready(function () {
$('.calendarStartDateTime').datetimepicker({
$.timepicker.regional[<% magic happens here %>],
controlType: 'select',
oneLine: true
});
});
</script>
或者是否应该在纯JavaScript中检测浏览器文化?
编辑:根据@ smirnov的回答,我的时间戳的最终代码是:
<script type="text/javascript">
$(document).ready(function () {
$('.calendarStartDateTime').datetimepicker(
$.extend(
{},
$.datepicker.regional['<%= System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName %>'],
$.timepicker.regional['<%= System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName %>'],
{
dateFormat: 'yy-mm-dd',
timeFormat: '<%= System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern %>',
controlType: 'select',
oneLine: true
}
)
)
});
</script>
此代码正确合并了jQuery的内置日期选择器,Trent Richardson的时间选择器属性和一些自定义设置的区域化设置。
答案 0 :(得分:1)
使用CultureInfo.CurrentCulture.TwoLetterISOLanguageName
由于timepicker似乎使用国家/地区代码作为区域值,请尝试
...
$.timepicker.regional['<%=System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName%>'],
...