2015-08-28 63 views
0

我想獲取CurrentUserLocale,並從CodeBehind中獲取它的服務器端。在JavaScript中調用的ASP.NET函數

這是我做的:

protected void Page_Load(object sender, EventArgs e) 
    { 
     lang = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; 
    [...] 
    } 

lang是一個全局變量string

我有這樣的功能:

public string getLang() 
    { 
     return lang; 
    } 

在我的JS代碼:

<script type="text/javascript"> 
    $(function() { 
     var language = <%# getLang() %>; 
     $("#datetimepickerdebut").datetimepicker({ 
      locale: language, // Eventuellement à modifier pour le multilingue 
      showTodayButton: true,//Bouton d'accès rapide à la date-heure actuelle 
      defaultDate: moment({h:0, m:0})/*Heure par defaut : le jour même à 00:00*/ 
     }); 
     $('#datetimepickerfin').datetimepicker({ 
      locale: language, 
      showTodayButton: true, 
      defaultDate: moment({h:23, m:59}) 
     }); 
    }); 
</script> 

我試着<% GetLang(); %>,與<%= GetLang(); %>,有或沒有分號。該日曆與locale:'fr'以及當我設置var language = 'fr'

有什麼想法嗎?

+2

爲什麼在OnPageLoad事件期間在頁面上沒有使用lang值填充的隱藏字段,並且只是從javascript字段中的該字段讀取值? –

回答

3
$language = '<%= getLang() %>'; 

注意周圍的單引號?你必須記住,值必須是客戶端的一個字符串,所以你需要把它放在引號內。

<%# %>語法是用於數據綁定,您將不得不在父對象上調用bind來工作。


或者,如Stoward94所示,您可以使用隱藏字段。

//markup 
<asp:HiddenField ID="LanguageHF" runat="server" ClientIdMode="static" /> 

//js  
$language = document.getElementById('LanguageHF').value; 

//code behind 
LanguageHF.Value = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; 
+0

那些日曆工作!你搖滾! – LeReferee

+0

不得不等待7分鐘;) – LeReferee