ASP.NET動態加載控件的"追趕論"

當初我實現這個的時候也是相當郁悶,老是丟失值,于是我就用Visable來解決(是加載WebControl)。以下是其他人的解決方案,蠻有參考價值的。

引用 隨心所欲
http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html

結論就是:

1:在特定的時刻加入該控件的定義。至少在Page_Load以前,我用的Page_Init。晚了就執行不了了

2:該控件的id必須一致。因爲狀態的恢複是根據控件id來完成的。

3:Rebuild的時候一定不要調用子控件的初始化的函數,這樣會浪費時間。

問題:可不可以通過設置UserControl的IsPostBack屬性來達到一種和Page類似的處理方式呢?這樣在UserControl裏面就可以使用if(!IsPostBack)來做一些數據初始化了。

引用 Cat Chen

我有寫過《深入理解ASP.NET動態控件》的系列文章,你可以去看看有沒有值得參考的內容:
http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html
http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html
http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html

關于追趕加載也詳細解釋了,並非0~n步都會在追趕加載中執行,只有特定的步驟會執行。如果控件已經加載完第k步,添加到另一個加載完第n步的控件中,則僅執行(k+1)~n步,前面的不會重複執行。

至于UserControl的加載很費時,這是你無法繞過去的。如果你的意思是,頁面默認加載UserControlA,發生事件後要丟棄UserControlA改爲加載UserControlB,浪費了時間在加載UserControlA上。以現在的ASP.NET頁面生存周期模型,我們無法解決這個問題,你改進後的解決方案也還是要先加載默認的UserControlA。

動態加載Asp.net分頁控件
  在asp.net中動態加載控件比較簡單,這裏我講得是對用戶控件的加載,比較典型的就是被加載的用戶控件裏面包含回發事件,在回傳回來的時候需要保持新的數據。  先來構建分頁用戶控件,由于前面幾篇文章都在講這些...查看完整版>>動態加載Asp.net分頁控件
 
動態加載Asp.net分頁控件
動態加載Asp.net分頁控件鄭佐2004-11-30 在asp.net中動態加載控件比較簡單,這裏我講得是對用戶控件的加載,比較典型的就是被加載的用戶控件裏面包含回發事件,在回傳回來的時候需要保持新的數據。 ...查看完整版>>動態加載Asp.net分頁控件
 
動態加載Asp.net分頁控件
在asp.net中動態加載控件比較簡單,這裏我講得是對用戶控件的加載,比較典型的就是被加載的用戶控件裏面包含回發事件,在回傳回來的時候需要保持新的數據。 先來構建分頁用戶控件,由于前面幾篇文章都在講這些東西...查看完整版>>動態加載Asp.net分頁控件
 
動態加載Asp.net分頁控件
動態加載Asp.net分頁控件鄭佐2004-11-30 在asp.net中動態加載控件比較簡單,這裏我講得是對用戶控件的加載,比較典型的就是被加載的用戶控件裏面包含回發事件,在回傳回來的時候需要保持新的數據。 ...查看完整版>>動態加載Asp.net分頁控件
 
asp.net控件加載
1. 使用Page.ParseControl2. 使用base.LoadControl第一部分:加載模板 下面是一個模板“<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></t...查看完整版>>asp.net控件加載
 
asp.net控件加載
1. 使用Page.ParseControl2. 使用base.LoadControl第一部分:加載模板 下面是一個模板“<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></t...查看完整版>>asp.net控件加載
 
Asp.Net控件加載錯誤的解決方法
開發基于Asp.Net的系統,最初使用R.a.d Treeview 2.5,經常會出現控件無法加載的情況。原以爲是控件本身的問題,可後來將R.a.d Treeview升級到3.0版,還是無法解決。去Terelik官方網站看了F.A.Q,也沒有提到這個問題...查看完整版>>Asp.Net控件加載錯誤的解決方法
 
ASP.NET動態生成輸入頁面,以及生成控件的大小控制,輸入數據的驗證等
ASP.NET動態生成輸入頁面,以及生成控件的大小控制,輸入數據的驗證等 有時根據選擇不同的數據表,要生成不同的輸入頁面,這些數據表的結構各不相同,這時就要動態輸出控件組成輸入頁面了,把這些表的結構放在...查看完整版>>ASP.NET動態生成輸入頁面,以及生成控件的大小控制,輸入數據的驗證等
 
動態加載用戶控件的組件
  頁面是用來浏覽信息的!但是更重要的是和用戶交互,根據不同的需求提供不同的內容服務,這是一種服務或是一種更貼近用戶的人性化。(又在胡言亂語了!^_^)  動態加載葉面,根據不同的用戶權限加載不懂的內容服...查看完整版>>動態加載用戶控件的組件
 
 
回到王朝網路移動版首頁