为什么语言不会在回发时发生变化?
我的下拉列表中有一个语言列表,其中包含en-NZ,en-US等forms的值,但该页面不会更改回发语言,因为我的语言代码错误。 有人可以查看我的代码,并告诉我改变我的页面语言我做错了什么
而且我的lbllanguage.Text会在第二次回发时发生变化,所以它假设在第一次单击时更改ChangeLanguage_Click事件
主页:
protected void Page_PreRender(object sender, EventArgs e) { string Culture = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; if (ddlChangeLanguage.Items.FindByValue(Culture) != null) { ddlChangeLanguage.SelectedValue = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; } } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { List languages = CultureInfo.GetCultures(CultureTypes.SpecificCultures).OrderBy(x => x.Name).ToList(); SortedDictionary sortedLanguages = new SortedDictionary(); foreach (CultureInfo language in languages) { RegionInfo regionInfo = new RegionInfo(language.Name); if (!sortedLanguages.ContainsKey(regionInfo.EnglishName)) { sortedLanguages.Add(regionInfo.EnglishName, language.Name); } } foreach (KeyValuePair language in sortedLanguages) { ddlChangeLanguage.Items.Add(new ListItem { Value = language.Value, Text = language.Key }); } ddlChangeLanguage.SelectedValue = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; } lbllanguage.Text = this.UICulture; } protected void ChangeLanguage_Click(object sender, EventArgs e) { (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture = ddlChangeLanguage.SelectedValue; }
和我的主页inheritance的我的BasePage
public class BasePage : System.Web.UI.Page { public BasePage() { } protected override void InitializeCulture() { this.Culture = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; this.UICulture = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; } }
您必须将字符串存储在资源文件或附属程序集中才能进行翻译:
ASP.NET网页资源概述
配置当前线程:
var culture = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture; Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture;
尝试将Page_PreRender中的逻辑更改为DropDownList.SelectedIndexChanged的处理程序。
- System.Security.SecurityException:请求类型为’System.Security.Permissions.EnvironmentPermission,mscorlib’的权限失败
- 即使我没有使用MySQL,ASP.NET也找不到MySQL主机
- 错误无法加载文件或程序集“AjaxControlToolkit”或其依赖项之一
- 从Code-Behind将Page Async模式设置为true
- 在自定义服务器控件asp中使用.resx && .resource文件
- ASP.NET MVC:Tabs ASCX – 根据当前页面调整CSS类?
- 从客户端检测到潜在危险的Request.Form值
- Ajax AsyncFileUpload.FileBytes返回null
- 无法将当前JSON数组(例如)反序列化为类型