1

ログインと更新ページでlangを変更したいのですが、InitialCulture関数でコンボボックスがnullになっています。

コードビハインド:

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();
    }

aspx:

  <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>

あなたの助けのためのthx。

4

2 に答える 2

4

メソッドを呼び出すことはできませんInitializeCulture。に保存する必要がSelectedValueありDropDownListますSession

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();
 }
于 2012-08-16T08:33:03.093 に答える
0

コードに不一致があります

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

値を取得するため、値tr-TRに置き換える必要があります

于 2012-08-16T08:32:54.280 に答える