對於註冊過程,我們有5個不同的頁面,開發人員將其卡入一個頁面(5個部分中的每一個都是用戶控件)。爲什麼每個控件都像我們的註冊頁面上的一個頁面?
一次只能將一個控件設置爲可見。
看來,每個控件的page_load
事件同時被觸發。
這是一個設計問題還是它的預期行爲?
對於註冊過程,我們有5個不同的頁面,開發人員將其卡入一個頁面(5個部分中的每一個都是用戶控件)。爲什麼每個控件都像我們的註冊頁面上的一個頁面?
一次只能將一個控件設置爲可見。
看來,每個控件的page_load
事件同時被觸發。
這是一個設計問題還是它的預期行爲?
加載事件將在頁面生命週期的同一點觸發頁面上的所有控件,是的。這意味着,每個控件都可以處理(或不處理)事件並執行任何操作,例如從數據庫等等和soforth獲取數據。
無論控件是否可見,都會觸發加載事件。您可能能夠跳過邏輯沒有做類似
public yadda yadda yadda OnLoad(...) {
if(!this.Visible) return;
//...
}
打破任何但這需要可見被加載之前正確設置,並且還說明如果你突然跳過所有它的邏輯控制不破。
預計它會依次調用每個控件的Load。
無論控件是否可見,它仍在服務器上處理。
這就是他們實際工作的方式。由於所有控件都在頁面上,並且只使用可見屬性,所有控件加載事件都將被觸發。 如果您想避免這種情況,請在該多頁視圖內的多視圖中將每個控件放置在其自己的視圖中(使控件可見爲真),然後更改多視圖當前視圖索引,而不是在用戶上設置可見/不可見控制。
我不認爲,這些裝載「並行」。 他們只是非常快速。
禁用所有默認設置,並在頁面中一次又一次啓用它們。
並且只執行他們自己的pageLoad的東西,如果它們被啓用。
另一方面,我強烈建議,以取消您的註冊。 5頁信息是不需要的,只是嚇倒可能的新用戶。