ASP.NET頁面回發與事件回傳

頁面事件順序是固定的,但頁面上的控件事件則依賴具體頁面和用戶的操作。如果控件的AutoPostBack屬性設置爲true(默認值爲false),那麼將立刻引起頁面回發,即頁面中各個控件的值回傳到Web服務器上,引發相應事件,由事件的處理程序處理。處理完成後如果沒有跳轉指令,該頁面將再此發送到客戶端的瀏覽器上。如果控件的AutoPostBack屬性設置爲false,那麼它的事件將不會一發生就馬上回傳,而要等到像Button Click這樣的回傳事件發生,才一併回傳。期間可能有多個事件被暫存在客戶端,但是如果一個控件的一個事件重複發生,則只暫存最後一次事件的信息。

        如果頁面的AutoEventWireup屬性爲false(默認值爲true),那麼頁面回傳後頁面的事件將不會引發。AutoEventWireup屬性可以在@ Page指令中設置,或者在Web.config文件中設置autoEventWireup屬性。

 由於頁面回發機制,程序員可能需要確定當前頁面是第一次發送到客戶端,還是由於事件回傳造成的頁面回發。比如:當對頁面控件進行初始化時,如果是第一次發送到客戶端,則需要進行初始化,如數據綁定等;如果是由於事件回傳造成的頁面回發,因爲已經初始化過了,所以無需再次初始化。頁面的IsPostBack屬性就是專門用來做回發檢查的。如果是回發,IsPostBack的值取true,否則取false。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章