2011-05-19 28 views
1

什麼是asp.net頁面加載管道的最後一點,我可以通過執行以下操作來更改頁面的文化?頁面管道中的最後一點,以改變文化?

Thread.CurrentThread.CurrentCulture = << new culture >>; 
Thread.CurrentThread.CurrentUICulture = << new culture >>; 

,我改變了文化在我的代碼,想知道在什麼時候是最後一個點,我可以更改頁面文化,使正確的資源文件等被拾起。

Page PreInit是否來不及改變文化?我知道在Page類中有一個InitialiseCulture方法,但我在這之外工作。

+0

抱歉不直接解決你的問題,但你說你想改變網頁文化。這可以通過Page.UICulture或Page.Culture屬性來完成。您所遵循的方法看起來更像是一種Windows窗體方法,但我可能不瞭解您的理由。你可以覆蓋InitializeCulture()方法設置文化,然後調用base.InitializeCulture()。至於在頁面生命週期中改變線程文化的最後一點,Im不確定你的目標是什麼。 – 2011-05-19 04:34:38

回答

0

按照MSDN文檔,正確的方法是使用InitialiseCulture - 它就會在頁面生命週期的早期創建即使控件之前調用。而這甚至是在PreInit事件之前。

說的是,人們已經把文化信息設置爲遲至Page_Load事件。例如,請參見this KB article或此code project article。所以我猜PreInit事件應該沒問題。

有兩個相關的屬性 - 文化和UICulture。 AFAIK,UICulture用於加載正確的本地(頁面特定)/全球資源,這將在渲染階段完成 - 所以不應該是一個問題。來自線程的文化信息被許多框架方法所使用,並且在頁面生命週期中設置文化之前,您需要謹慎使用依賴於文化信息的任何代碼 - 此類代碼的示例可以是數據格式化或從請求中解析數據等