如何在登录页面使用dropdownbox更改页面文化?
问题描述:
我想在登录和刷新页面中更改lang,但在我的组合框中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();
}
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对您有所帮助。
答
你不能调用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();
}
答
你在你的代码
string Kultur = myLang.SelectedValue;
if (string.IsNullOrEmpty(Kultur)) Kultur = "Auto"; <--
你必须用值TR-TR更换不匹配,因为你得到的值
也有我定义initialCulture功能的所有页面? – Mennan 2012-08-16 08:37:19
是的!那是真实的。看看 - http://msdn.microsoft.com/en-us/library/bz9tc508.aspx – adatapost 2012-08-16 08:39:48
确定它工作thx – Mennan 2012-08-16 08:43:21