[ASP.NET]UpdatePanel動態註冊Trigger

使用過ASP.NET AJAX的UpdatePanel的人應該都知道,只有註冊為UpdatePanel的元件事件,才會觸發partial refresh事件,否則一般的server control還是會執行full page refresh,但今天如果我們想要在某些條件下才把某個元件註冊為trigger時該怎麼辦?

使用過ASP.NET AJAX的UpdatePanel的人應該都知道,只有註冊為UpdatePanel的元件事件,才會觸發partial refresh事件,否則一般的server control還是會執行full page refresh,但今天如果我們想要在某些條件下才把某個元件註冊為trigger時該怎麼辦?這邊提供一個簡單的寫法:

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

 

透過以上的程式碼就可以動態在頁面上動態註冊好trigger囉,不過要特別注意的是,透過這種寫法有時候會出現trigger不見的問題,可時候可以將這段程式寫到OnInit中或者透過以下寫法強制幫UpdatePanel註冊trigger囉:

相關的做法可以參考這個連結:http://www.zhangsichu.com/blogview.asp?Content_Id=68

1 UpdatePanel1.GetType().GetMethod("Initialize", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(UpdatePanel1, null);

游舒帆 (gipi)

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