如何使用asp:DropDownList更改页面本地化?

时间:2011-03-24 15:05:35

标签: asp.net localization webforms

我有本地化的应用程序,用户可以在下拉控件中选择她的首选语言。在OnSelectedIndexChanged事件之后,有回发和CurrentThread.CurrentCulture应该设置为用户选择的内容。

Login.aspx.cs
public partial class Login : BasePage
{
   protected void LanguageDrop_changed(object sender, EventArgs e)
   {
       var lang = LanguageDropDown.SelectedValue;
       Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
       Thread.CurrentThread.CurrentCulture = new CultureInfo(lang);
   }
}

但是,它无法正常工作,因为在InitializeCulture之后会触发LanguageDrop_click事件,因此初始化了一些默认文化,控件被本地化为默认语言,然后设置了CurrentThread.CurrentCulture。因此,用户必须再次刷新页面,以便以所选语言查看它们。

更新: 我找到了部分答案:http://www.codeproject.com/Kb/aspnet/localizationByVivekTakur.aspx 他从Form集合

中检索InitializeCulture()事件中的语言下拉值

2 个答案:

答案 0 :(得分:1)

最佳答案是我提供的链接

  

http://www.codeproject.com/Kb/aspnet/localizationByVivekTakur.aspx   他检索语言下拉值   在Form中的InitializeCulture()事件中   集合

或制作Response.Redirect,再次请求页面,然后设置文化。

答案 1 :(得分:0)

根据我的经验,不幸的是没有更好的选择,你将不得不再次刷新。你的推理是正确的。