[ASP.NET]動態幫UpdatePanel加入Trigger

為了改善效能與減少應用程式撰寫上的負擔,因為Trigger數目隨著程式不同而會有所改變,嘗試採用了由super-class中動態幫sub-class加入trigger的做法

今天為了改善效能與減少應用程式撰寫上的負擔,因為Trigger數目隨著程式不同而會有所改變,嘗試採用了由super-class中動態幫sub-class加入trigger的做法,以下為我的程式範例:

 

http://xujunprogrammer.blog.hexun.com/8507718_d.html

利用他的方法剛好就解決了我所遭遇到的問題,原來是trigger掉了,我想以上那篇文章說的很清楚了,因為在UpdatePanel的生命週期中,只有在OnLoad時判斷不是非同步的操作才會幫UpdatePanel註冊Trigger,頁面第一次載入時因為是全頁刷新,所以Trigger有註冊上去,接著觸發AJAX時因為不是全頁刷新,所以Trigger掉了。

真的只能說還有很多沒有使用過的功能隱藏在.net裡頭阿。

1 AsyncPostBackTrigger tLoading = new AsyncPostBackTrigger();
2 tLoading.ControlID = "BtnToLoading";
3 tLoading.EventName = "Click";
4 UpdatePanel1.Triggers.Add(tLoading);
5 UpdatePanel1.Update();

這樣寫就可以在UpdatePanel1中動態加入一個trigger叫BtnToLoading,所以當我按下BtnToLoading時頁面就會被觸發部分刷新,到目前為止都很順利,但當我多測試幾次卻發現奇怪的事情發生了,當我第二次按下BtnToLoading時卻發現頁面全頁刷新了,上網去查了一下是否有相關的文章,很快就查到以下這篇:
 


 

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。