2012-12-24 56 views
1

我的項目文件中有以下文件。在頁面生命週期中渲染事件

  1. 用戶控制
  2. 內容頁
  3. 的Site Master

我被檢查的頁面生命週期Render事件。 Render事件按以下順序執行。

  1. 內容頁
  2. 母版頁
  3. 用戶控制

很顯然,這是預定義的。

問題是,爲什麼內容頁然後母版頁,最後是用戶控制?

我的意思是如何將完整的Html合併發送到瀏覽器?它不應該首先包含Master Page嗎?

回答

2

渲染不是一個事件。這是一種調用來生成輸出以發送給客戶端的方法。
呈現呈現自己和它的孩子。

順序是 渲染 RenderChildren

可以清楚在ASP.NET Page Life Cycle看到。

在您的控制層次結構中,頁面是父級。 MasterPage是Page控件的子項。根據您放置用戶控件的位置,它將成爲Page或MasterPage的子項。

如果創建一個自定義的控制,通常要重寫此方法以輸出控件的標記

每個控件從其父收到HtmlTextWriter其輸出寫入此作家。客戶端收到的最終輸出是控件及其所有子項寫入的輸出。

由於頁面必須啓動此過程,因此必須先調用其Render。