| 導購 | 订阅 | 在线投稿
分享
 
 
 

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

來源:互聯網  2008-12-13 08:24:00  評論

當初我實現這個的時候也是相當郁悶,老是丟失值,于是我就用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。

  當初我實現這個的時候也是相當郁悶,老是丟失值,于是我就用Visable來解決(是加載WebControl)。以下是其他人的解決方案,蠻有參考價值的。 引用 隨心所欲 [url=http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html]http://www.cnblogs.com/dlwang2002/archive/2006/12/07/585093.html[/url] 結論就是: 1:在特定的時刻加入該控件的定義。至少在Page_Load以前,我用的Page_Init。晚了就執行不了了 2:該控件的id必須一致。因爲狀態的恢複是根據控件id來完成的。 3:Rebuild的時候一定不要調用子控件的初始化的函數,這樣會浪費時間。 問題:可不可以通過設置UserControl的IsPostBack屬性來達到一種和Page類似的處理方式呢?這樣在UserControl裏面就可以使用if(!IsPostBack)來做一些數據初始化了。 引用 Cat Chen 我有寫過《深入理解ASP.NET動態控件》的系列文章,你可以去看看有沒有值得參考的內容: [url=http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html]http://www.cnblogs.com/cathsfz/archive/2006/10/31/545521.html[/url] [url=http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html]http://www.cnblogs.com/cathsfz/archive/2006/11/05/550985.html[/url] [url=http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html]http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html[/url] 關于追趕加載也詳細解釋了,並非0~n步都會在追趕加載中執行,只有特定的步驟會執行。如果控件已經加載完第k步,添加到另一個加載完第n步的控件中,則僅執行(k+1)~n步,前面的不會重複執行。 至于UserControl的加載很費時,這是你無法繞過去的。如果你的意思是,頁面默認加載UserControlA,發生事件後要丟棄UserControlA改爲加載UserControlB,浪費了時間在加載UserControlA上。以現在的ASP.NET頁面生存周期模型,我們無法解決這個問題,你改進後的解決方案也還是要先加載默認的UserControlA。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有