程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 取消異步回發

取消異步回發

編輯:關於ASP.NET

通過使用頁上的NET UpdatePanel Web 服務器控件,可以在 ASP.NET 中實現異步回發。 UpdatePanel 控件不再需要在每次回發時刷新整個頁面,這樣將改善用戶體驗。在浏覽器中, Microsoft AJAX Library 中的Sys.WebForms.PageRequestManager 類在客戶端頁生命周期中管 理事件以進行異步回發。可以通過處理 PageRequestManager 類公開的事件來自定義異步回發 出現的方式。

先決條件

若要在您自己的開發環境中實現這些過程,您需要:

Microsoft Visual Studio 2005 或 Microsoft Visual Web Developer 速成版。

一個支持 AJAX 的ASP.NET 網站。

創建取消回發的腳本

首先,創建用於管理浏覽器中的異步回發的ECMAScript (JavaScript) 代碼。

創建 JavaScript 代碼以取消回發

在 ASP.NET 網站中,添加新的JScript 文件並將其命名為 CancelPostback.js。

向文件中添加以下腳本:

var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';

Sys.Application.add_load(ApplicationLoadHandler)
function ApplicationLoadHandler(sender, args)
{
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest (CheckStatus);
}
function CheckStatus(sender, args)
{
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id ==  'CancelRefresh') {
    prm.abortPostBack();
  }
  else if (prm.get_isInAsyncPostBack() & args.get_postBackElement().id  == 'RefreshButton') {
    args.set_cancel(true);
    ActivateAlertDiv('visible', 'Still working on previous  request.');
  }
  else if (!prm.get_isInAsyncPostBack() & args.get_postBackElement().id  == 'RefreshButton') {
    ActivateAlertDiv('visible', 'Retrieving headlines.');
  }
}
function ActivateAlertDiv(visString, msg)
{
    var adiv = $get(divElem);
    var aspan = $get(messageElem);
    adiv.style.visibility = visString;
    aspan.innerHTML = msg;
}
if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded ();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved