//master.cs
protected void ddlLanguage_SelectedIndexChanged(object sender, EventArgs e)
{
//alert box
string message = "Some Content of the Site are only in English. Do you want to continue?";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("return confirm('");
sb.Append(message);
sb.Append("');");
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "alert", sb.ToString());
//alert end
//Sets the cookie that is to be used by Global.asax
HttpCookie cookie = new HttpCookie("CultureInfo");
cookie.Value = ddlLanguage.SelectedValue;
Response.Cookies.Add(cookie);
//Set the culture and reload the page for immediate effect.
//Future effects are handled by Global.asax
Thread.CurrentThread.CurrentCulture = new CultureInfo(ddlLanguage.SelectedValue);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(ddlLanguage.SelectedValue);
Server.Transfer(Request.Path);
}
//master Page
<asp:DropDownList ID="ddlLanguage" class="langpnl" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlLanguage_SelectedIndexChanged">
<asp:ListItem Value="en-US">Eng</asp:ListItem>
<asp:ListItem Value="es-ES">Esp</asp:ListItem>
</asp:DropDownList>
ユーザーが英語からスペイン語に変わるたびに、アラートボックスを表示したいと思います。奇妙な動作です。このコードは機能していません。選択したインデックスの変更時にアラートボックスが表示されませんが、ページの読み込みイベントにアラートボックスコードを貼り付けると機能します。ページロードはこれと何か関係がありますか?次に、答えを覚えることができます。つまり、ユーザーが「覚えておいてください」というチェックボックスを選択した場合、セッション全体でユーザーが「はい」または「いいえ」を選択したかどうかを覚えておく必要があります。2番目の質問に関する提案があれば役立ちます。しかし、上記のコードが期待どおりに機能しない理由を見つけるのを手伝ってください。