日期:2011-09-20 浏览次数:20487 次
///<SUMMARY> ///从通用的页面头部的下拉框列表中选择的语言名。 ///我们需要使用这个名字,因为我们还没有任何其它控件属性-现在控件本身还没有被初始化。 ///因此,我们使用"嵌套的"下拉框列表名,从中我们可以从Request.Form[]集合中得到该下拉框列表的值。 /// </SUMMARY> public const string LanguageDropDownID = "ctl00$cphHeader$Header1$ddlLanguage"; /// <SUMMARY> ///在一个回寄表单中的PostBack事件目标域的名字。你可以使用 ///它来确定是哪个控件触发了PostBack: /// Request.Form[PostBackEventTarget] . /// </SUMMARY> public const string PostBackEventTarget = "__EVENTTARGET"; |
/// <SUMMARY> ///重载InitializeCulture方法来设置在当前线程中用户选择的选项 ///。注意,这个方法在Page生命周期的早期调用 ///,并且目前我们不存在任何控件 ///,因此必须使用Form集合. /// </SUMMARY> protected override void InitializeCulture() { ///<remarks><REMARKS> ///检查是否PostBack发生.不能使用在此方法中使用IsPostBack ///,因为这个属性还没有设置。 ///</remarks> if (Request[PostBackEventTarget] != null) { string controlID = Request[PostBackEventTarget]; if (controlID.Equals(LanguageDropDownID)) { string selectedValue = Request.Form[Request[PostBackEventTarget]].ToString(); switch (selectedValue) { case "0": SetCulture("hi-IN", "hi-IN"); break; case "1": SetCulture("en-US", "en-US"); break; case "2": SetCulture("en-GB", "en-GB"); break; case "3": SetCulture("fr-FR", "fr-FR"); break; default: break; } } } ///<remarks> ///从会话中取得文件,如果控制给导航到同一程序中的一个新页面。 ///</remarks> if (Session["MyUICulture"] != null && Session["MyCulture"] != null) { Thread.CurrentThread.CurrentUICulture = (CultureInfo)Session["MyUICulture"]; Thread.CurrentThread.CurrentCulture = (CultureInfo)Session["MyCulture"]; } base.InitializeCulture(); } /// <Summary> ///使用参数设置当前的UICulture和CurrentCulture /// </Summary> /// <PARAM name="name"></PARAM> /// <PARAM name="locale"></PARAM> protected void SetCulture(string name, string locale) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(name); Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); ///<remarks> ///由用户把当前线程的文化集保存在会话中 ///,以便它能够在当前应用程序中跨页面应用。 ///</remarks> Session["MyUICulture"] = Thread.CurrentThread.CurrentUICulture; Session["MyCulture"] = Thread.CurrentThread.CurrentCulture; } |