我使用特倫特理查森的jQuery的DateTimePicker擴展,通過的NuGet獲得整合: http://trentrichardson.com/examples/timepicker/如何使用的DateTimePicker ASP.NET本地化
Trent的文件說,你可以創建一個本地化的DateTimePicker這樣的:
$('#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中檢測到瀏覽器文化?
編輯:根據@橫溢的回答,我對timepicker最終代碼爲:
<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的內置日期選擇器,特倫特·理查森的timepicker屬性,區域化設置一些自定義設置。