Localization Theme
為了能夠因應變換語系而套用不同的skin,所以必須在程式中判定語系來切換theme,但是切換theme必須放在Page_PreInit的事件裡面(一開始試著放在master page裡面,但是他卻沒有Page_PreInit事件,所以還是必須放在每單一頁的Page_PreInit上);但是一頁一頁修改實在太麻煩了,如果在global接回page修正也是可以,但是如果有預設值,在後面Page_PreInit會被蓋掉。所以還是必須在Page_PreInit的事件處理。
只好綁一個Page_PreInit上去!
{
HttpContext ctx = HttpContext.Current;
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page p = (ctx.Handler as Page);
if (p != null)
p.PreInit += new EventHandler(Page_PreInit);
}
void Page_PreInit(object sender, EventArgs e)
{
Page p = sender as Page;
if (System.Globalization.CultureInfo.CurrentCulture.IetfLanguageTag == "en-US")
p.Theme = "en-US";
}