2012-08-16 3 views
1

login에서 lang을 변경하고 페이지를 새로 고치고 싶지만 ComboBox에서 InitialCulture 함수에서 null입니다. 뒤에로그인 페이지에서 dropdownbox를 사용하여 페이지 문화권을 변경하는 방법은 무엇입니까?

코드 :

protected void myLang_OnChange(object sender, EventArgs e) 
    { 
     InitializeCulture(); 
    } 

    protected override void InitializeCulture() 
    { 
     string Kultur = myLang.SelectedValue; 
     if (string.IsNullOrEmpty(Kultur)) Kultur = "Auto"; 

     this.UICulture = Kultur; 
     this.Culture = Kultur; 


     base.InitializeCulture(); 
    } 

영문 : 당신의 도움에 대한

<asp:DropDownList Name="myLang" ID="myLang" runat="server" 
       OnSelectedIndexChanged="myLang_OnChange" AutoPostBack="True"> 
       <asp:ListItem Text="Auto" Value="auto" /> 
       <asp:ListItem Text="Türkçe" Value="tr-TR" /> 
       <asp:ListItem Text="İngilizce" Value="en-US" /> 
    </asp:DropDownList> 

들으. 당신은 당신은 InitializeCulture 방법을 호출 할 수 없습니다 값

답변

4

를 얻을 수 있기 때문에

+0

또한 모든 페이지에서 initialCulture 함수를 정의합니까? – Mennan

+0

예! 그것은 사실입니다. 좀 봐 - http://msdn.microsoft.com/en-us/library/bz9tc508.aspx – adatapost

+0

괜찮아요 작동합니다. – Mennan

0

당신은 당신의 코드

string Kultur = myLang.SelectedValue; 
     if (string.IsNullOrEmpty(Kultur)) Kultur = "Auto"; <-- 

당신이 값 TR-TR로 교체해야합니다에 불일치가 있습니다. 에 의 DropDownList을 저장해야합니다.

protected void myLang_OnChange(object sender, EventArgs e) 
    { 
     Session["lang"]=myLang.SelectedValue; 
     Response.Redirect("your_current_page.aspx"); 
    } 

protected override void InitializeCulture() 
    { 
    string Kultur="en-US"; // default lang 
    if(Session["lang"]!=null) 
    Kultur = Session["lang"].ToString(); 

    this.UICulture = Kultur; 
    this.Culture = Kultur; 
    base.InitializeCulture(); 
} 
관련 문제