ASP.net控制項開發系列之二

來源:互聯網
上載者:User

“生死有序”

“裝裝孫子”

上篇文章《開篇》說了不少空洞的理論,這篇文章我還是先說說“大而化之”的東西:1、ASP.net控制項(包括頁面本身)的生命期的細節;2、如何開始一個控制項的編寫。

“生死有序”

ASP.net處理常式在接收到一個使用者的頁面請求後,它是如何變戲法把一個鮮活的頁面呈現給用戶端的呢?它都做了哪些事?按什麼順序做的?

要說明這個問題,我們首先要明白,一個頁面它本身也是一個Control。從設計模式的角度講,頁面模型是一個“合成模式(Composite)”,它本身是一棵由多層控制群組成的結構樹,頂層是Page,以下有葉有樹枝,葉是不再包涵子控制項的控制項,枝是又包涵子控制項的控制項,每一層控制項的產生都會調用一個產生子控制項的方法,父控制項調用子控制項的產生方法,子又調用孫的,如此遞迴,保證頁面中所有有效(一般情況下是Visible=true)控制項都得到產生過程處理,(有關設計模式的東西大家可以查看呂震宇老師在部落格園的設計模式系列文章,該系列文章是對閻博士《Java與模式》一書(88元,很厚)的提煉與加工,至少可用來做設計模式淺層面速成的教材),而每個控制項在生命週期大體都包括以下幾個步驟:

1.執行個體化(Instantiate)

我們寫控制項一般不要接觸此活動。

2.初始化(Initialize)

同上。

3.跟蹤視圖(Tracking View State)*

這個比較重要,涉及到檢視狀態,一般情況下不必重載此方法。

4.載入檢視狀態(Load view state)*

只會在回傳過程中調用此方法,用法同上。

5.載入回傳資料(Load postback data)*

如果你的控制項產生之後要和用戶端互動,那麼這個方法就很重要,只會在回傳過程中調用此方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.