2016-07-06 64 views
0

我使用特倫特理查森的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屬性,區域化設置一些自定義設置。

回答

1

使用CultureInfo.CurrentCulture.TwoLetterISOLanguageName

至於timepicker似乎使用國家代碼爲區域,可以嘗試

... 
$.timepicker.regional['<%=System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName%>'], 
...