您好,登錄后才能下訂單哦!
ASP.NET中如何使用 UpdatePanel控件,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
UpdatePanel 可以為一般的網頁帶來 AJAX 神奇的好處,但是它不能提供我們與 AJAX 正常關聯的高效性。例如,您是否知道,當 UpdatePanel控件對服務器執行異步 AJAX 回調以更新其內容時,這個請求包含了常規 ASP.NET 回發所包含的一切,其中還包括視圖狀態呢?大多數開發人員會以為 AJAX 取消了視圖狀態。而 UpdatePanel 的 AJAX 品牌卻并非如此。
如果您準備使用 UpdatePanel控件,您需要清楚您在準備干什么。在許多情況下,從性能的角度而言,應用程序***是不使用 UpdatePanel,而是使用對 WebMethods 或頁面方法的異步調用。這樣做可能會大幅度降低網絡傳輸中的數據量。但是,它也是一個根本轉變,在這里 UI 更新需要由開發人員使用該頁面上的 JavaScript 來進行顯式處理。
此外,ASP.NET AJAX 論壇上到處都有關于自定義 UpdatePanel 的提問。其實,只要您了解為 UpdatePanel 提供客戶端支持的 Microsoft? AJAX Library 中的 PageRequestManager、JavaScript 類,這里面許多問題就可以迎刃而解。
既然已經提供了 ASP.NET AJAX,我想進一步檢查一下 UpdatePanel,從而進一步了解您可以如何對其進行自定義和優化,甚至在沒有它的情況下如何運行。這恰恰也是本期專欄包含的全部內容。
更新突出顯示
有時候您無法幫助 Microsoft 的開發人員,而只能對他們表示遺憾。如果他們不能將工作做得足夠好,就會遭到公眾的抨擊。然而,有時候他們的工作做得很出色,也會遭到抨擊。例如,我最近收到了一位客戶的電子郵件,抱怨 ASP.NET AJAX UpdatePanel 運行得有點過頭了。
UpdatePanel 使 ASP.NET 頁面回發到服務器,并將它變為流暢、無閃爍的更新時出現閃光和閃爍變得極其簡單。UpdatePanel 可以通過將回發轉換成異步回調(XML-HTTP 請求),以及使用客戶端上的 JavaScript 以刷新由 UpdatePanel控件封裝的頁面的一部分來發揮它的魔力。閃光和閃爍會消失,因為瀏覽器不會將該頁面重新繪制成與它在回發期間的一樣。
客戶的抱怨是,用戶有時候不會注意到頁面的那個部分已經更新了新內容。他的問題很簡單:ASP.NET AJAX 團隊的工作人員是否能使
updatePanel 閃爍再多一點,以便用戶不會錯過重要的更新?
不幸的是,ASP.NET AJAX 團隊可能對制造 UpdatePanel 閃爍沒什么興趣。畢竟,消除閃爍才是發明 UpdatePanel 的初衷。但值得高興的是,您可以在瀏覽器中使用 AJAX 的一些神奇功能,以吸引對已更新的 UpdatePanel 的注意。秘訣在于 Microsoft AJAX Library(由客戶端一半的 ASP.NET AJAX 組成的 JavaScript 類的庫)中的 Sys.WebForms.PageRequestManager 類。PageRequestManager 可以管理由 UpdatePanel 啟動的異步回調。它還負責在異步回調完成后更新 UpdatePanel 內的內容。
PageRequestManager 可以在更新前和更新后激發瀏覽器中的事件。您可以將 JavaScript 中的這些事件關聯起來,并運行可以提醒用戶注意更新內容的代碼。關鍵事件被命名為 pageLoaded.此事件每次都會激發瀏覽器中的頁面加載(它類似 Page_Load in ASP.NET)。它每次還會激發代表 UpdatePanel控件完成而啟動的異步回調,并且會更新這個 UpdatePanel 中的內容。您可以使用兩行代碼(可以合并為一行)注冊 pageLoaded 事件的 JavaScript 處理程序:
var prm = Sys.WebForms.PageRequestManager.getInstance();prm.add_pageLoaded(pageLoaded);
***行獲得對該頁面的 PageRequestManager 對象的引用。第二行注冊名為 pageLoaded 的 JavaScript 函數,作為 pageLoaded 事件的處理程序。
調用時,pageLoaded 事件處理程序會收到一個 Sys.WebForms.PageLoadedEventArgs 類型的參數,它是 Microsoft AJAX Library 中的另一個類。PageLoadedEventArgs 包含一個 get_panelsUpdated 方法,您可以調用該方法來枚舉所有的 UpdatePanel(如果有),其內容剛剛已更新。在默認情況下,UpdatePanel 就是客戶端上的 DIV,因此您可以使用 JavaScript 來使該 DIV 閃光,突出顯示它,或對它執行任何您想要的操作,以提醒用戶注意它。
關于ASP.NET中如何使用 UpdatePanel控件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。