2010-10-25 56 views
5

在ASP.NET中創建動態控件的最佳位置在哪裏? MSDN表示Pre_init,另一個MSDN article表示Init,而some people表示Load事件(我讀的不好做)。ASP.NET - 在Page_Pre_init()或Page_Init()或Page_Load()中創建的動態控件

我正在學習MS認證,我想確保知道哪一個理想,爲什麼。我最初的想法是在pre_init中創建對象,並在Load事件中分配任何屬性值(以便爲動態控件加載ViewState)。

回答

4

我推薦Page_Init()。這將繞過ViewState不一致加載的問題。控件將可訪問,但視圖狀態尚未應用於它們。這正是您希望爲第二篇文章添加控件的地方。

另外,根據經驗,這是行之有效的。其他任何方式都會引起我的問​​題。

4

這取決於,但我認爲一般的共識是越早越好。因此,如果您將動態控件添加到頁面,請將它們添加到Pre_Init階段(如果可以的話)。如果您要將自定義控件添加到用戶控件,請在Init階段添加它們(控件沒有Pre_Init)。

有些情況下,您無法儘早添加它們。

  1. 添加在 響應某些用戶輸入(例如 按鈕點擊)的控制。
  2. 您需要根據所處頁面的狀態加載特定的控件。在這種情況下,您可能必須等待包含控件的加載事件,以確定是否需要加載控件。

作爲一般的經驗法則,儘快添加它們。