2015-08-28 3 views
0

Я пытаюсь получить CurrentUserLocale, и я получаю его серверную часть от моего CodeBehind.Функция ASP.NET, вызванная в JavaScript

Это то, что я делаю:

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'

У вас есть идея?

Yann

+2

Почему вы не скрытое поле на странице, которая заполняется со значением языки во время мероприятия OnPageLoad и просто прочитать значение из этого поля в яваскрипта коде? –

ответ

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

Смежные вопросы