【发布时间】:2016-07-06 11:24:01
【问题描述】:
我正在使用 Trent Richardson 的 JQuery 的 datetimepicker 扩展,通过 NuGet 获得: http://trentrichardson.com/examples/timepicker/
Trent 的文档说您可以像这样创建一个本地化的日期时间选择器:
$('#basic_example_4').timepicker(
$.timepicker.regional['es']
);
我通过在 TextBox 上设置 CssClass 属性将 datetimepicker 附加到 ASP.NET TextBox,并通过选择 CSS 类让 JavaScript 附加 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 的时间选择器属性和一些自定义设置。
【问题讨论】:
标签: javascript jquery asp.net