當有控制項不在UpdatePanel 裡面時,可用PageRequestManger來控管
他的事件有(一定要有ScriptManager,且他的EnablePartialRendering要為true)
initializeRequest:在非同步postback的Request初始化之前觸發
beginRequest:在非同步postback的Request送到伺服器之前觸發
pageLoading:Client端收到非同步postback的回應之後,
它還沒更新網頁之前觸發
pageLoaded:網頁的部分更新完成之後處發
endrequest:整個Request請求完成之後觸發
傳資料與接收資料
Server端:ScriptManager1.RegisterDataItem(myLabel,"Hello");
Client端:
<acript type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(myPageLoading);
//判斷是否在執行非同步傳輸
//Sys.WebForms.PageRequestManager.getInstance().get_isInAsynPostBack()
//抓使用非同步傳輸的控制項的ID
//Sys.WebForms.PageRequestManager.getInstance().postBackElement().id
//取消非同步
Sys.WebForms.PageRequestManager.getInstance().abortPostBack();
function myPageLoading(sender,args)
{
var dataItems=args.get_dataItems();
if($get('myLabel')!=null)
{
$get('myLabel').innerHTML=dataItems[''myLabel];
}
}
</script>
Sys.Application的觸發事件
<acript type="text/javascript" language="javascript">
//直接這樣寫就會在網頁執行非同步postback時觸發
function pageLoad()
{
}
//在用戶端的物件被釋放之前觸發
function pageUnload()
{
}
</script>