UpdatePanel 更新的程式化控制-明確的 update 方法呼叫

當你將一個 UpdatePanel 控制項配置於網頁上的時候,在預設的情形下,網頁所觸發的 PostBack 行為會被攔截,然後自動在背景進行更新的行為,無論如何,當你設計的網頁愈來愈複雜的時候,預設的更新模型有的時候並不能滿足網頁的更新需求,也因此我們需要更彈性的作法,透過後置程式碼於特定的時機點來驅動更新作業,要達到這個目的並不困難然,呼叫Update()方法即可,Update()是UpdatePanel控制項的方法成員之一,引用此方法的語法如下:

UpdatePanel1.Update();

當這一行程式碼被執行的時候,指定的UpdatePanel控制項就會被執行,不過在你寫下這行程式碼之前,還必須完成控制項的登錄作業。

基本上我們會在程式碼動態觸發更新作業,就是希望能夠完全手動控制UpdatePanel的更新,也因此直接將其配置於UpdatePanel區域當中,或是設定觸發器,都沒有辦法達到控制的效果。

要在程式碼引用Update()執行更新作業之前,必須完成控制項的登錄,如下式,登錄作業由ScriptManager的方法RegisterAsyncPostBackControl()執行:

ScriptManager1.RegisterAsyncPostBackControl(Button1);

一個完成登錄作業的控制項,才能在其事件處理程序當中引用Update()的時候,觸發更新作業。

另外,除了登錄控制項,記得必須將UpdateMode屬性設定為Conditional,如此一來,UpdatePanel才不會受其他控制項所觸發的Postback所影響。

結束這篇文章之前,我們將上述的過程整理一下,當你要執行明確的 update 方法呼叫,進行 UpdatePanel 的更新,所需的步驟如下:

1. 引用 ScriptManager 方法 RegisterAsyncPostBackControl() 進行控制項的登錄。
2. 將UpdateMode屬性設定為Conditional。
3. 引用Update()執行更新作業。

了解上述的三個步驟,接下來,我們就可以將其運用在真正的實作上面了,下一篇文章「一個示範 UpdatePanel 的程式化更新範例」裏面,提供了一個說明的實例。

摘自「ASP.NET 應用程式開發-與AJAX共舞」一書第三章

沒有留言: