2011-06-16 49 views
3

在今天的面試問題中,我被問到哪個是頁面生命週期中可以設置控件屬性的最後一個事件。我說這將是事件(如按鈕點擊等),或者如果沒有事件,然後將其設置在頁面加載事件。然後他說我想要最後的事件名稱。你能告訴我哪個是更新控件屬性的最後一個事件嗎?爲什麼會使用這樣的事件?而不是頁面加載或按鈕點擊等?哪一個是設置控件屬性的最後一個事件?

感謝提前:)

回答

5

我會說其PreRenderComplete事件,因爲在呈現頁隨即

雖然看MSDN page lifecyle的SaveStateComplete事件即使發生這種情況。雖然如果你使用它,你將無法將控件的新屬性保存到ViewState中。

在實踐中,我會使用PreRender事件做'最終'的控制變更。

+0

我支持該聲明。 [ASP.NET頁面生命週期](http://msdn.microsoft.com/en-us/library/ms178472.aspx)文本建議使用'PreRender':*「...對內容進行最終更改在渲染階段開始之前頁面或其控件的一部分。「* – 2011-06-16 16:20:11

0

SaveStateComplete是您可以設置控件屬性的最後一個基於頁面的事件。但是,SaveStateComplete在控件本身中不可用,並且在那裏設置的任何屬性都不會在ViewState中持久化。由於原來的問題與「頁面生命週期」有關,我認爲這將是正確的答案。

PreRenderComplete是最後一個基於頁面的事件,您可以在其中設置控件屬性並使它們仍保留在ViewState中。但是,與SaveStateComplete一樣,它在控件中不可用。

PreRender是在這兩個控件和頁面中可用的最後一個事件,您可以在其中設置屬性並將它們保存在ViewState中。

相關問題