2013-02-15 53 views
1

我有一些遺留的sitecore asp網絡應用程序。 我發現在佈局(aspx)我有ImageButton控件應該改變網站語言。ASP NET如何將事件從ASPX發送到ASCX

protected void btnLanguage_Click(object sender, EventArgs e) 
    { 
     ImageButton flag = (ImageButton)sender; 
     if (string.IsNullOrEmpty("") == false) 
     { 
      UserContext.CurrentCulture = LanguageManager.GetLanguage(flag.CommandArgument);      
     } 
     else 
     { 
      SC.Context.Language = LanguageManager.GetLanguage(flag.CommandArgument); 
     } 
    } 

但是我有很多控件應該在這個事件調用後被翻譯。通過ASP網頁生活方式的過程,這是不好的行爲,但無論如何,我需要做的事情。在我的情況下做到這一點的最佳方式是什麼,以及如何以正確的方式完成這項工作?

+0

想到最快的方法是將語言保存在會話中,並從各種控件中訪問它們(當主頁面被髮回時它們都應該得到一個頁面加載事件,所以你可以在那裏檢查)。 – Tallmaris 2013-02-15 14:30:43

+0

謝謝。是的,這是主意。但是,正確的方式呢? – 2013-02-15 14:31:45

回答

1

如果是這樣那麼Sitecore的應用只是讓Sitecore的處理它,用一個超鏈接更改圖像按鈕到正規的圖像和語言的參數傳遞(使用LinkManager):

/en-CA/some-folder/some-page.aspx

/some-folder/some-page.aspx?sc_lang=en-CA

然後,您可以設置系統文化基礎上Sitecore.Context.Lanaguge

一些有用的info in this post,看到評論爲好。