学习ASP.NET AJAX (三) (UpdatePanel 客户端)

PageRequestManager

-getInstance静态方法

获得全局唯一的PageRequestManager实例

-isInAsyncPostBack属性

是否正在处于一个异步更细过程中

-abortPostBack方法

取消当前的异步更新

多次调用不会产生异常

 

客户端的生命周期

Sys.Application与PageRequestManager共同形成

Sys._Application类

init 事件

load 事件

unload 事件

捷径方法

pageLoad方法

pageUnload方法

 

PageRequestManager的事件

 异步刷新时触发

 initializeRequest

 beginRequest

 pageLoading

 pageLoaded

 endRequest

 

进入页面

PRM-pageLoaded事件

App-init

App-load

pageLoad

离开页面

pageUnload 方法

App-unload事件

异步提交过程

发起一个异步提交

 PRM-initializeRequest

 PRM-beginRequest

服务器端处理

 PRM-pageLoading(正常)

 PRM-pageLoaded

 App-load

 pageLoad

 PRM-endRequest(异常)

 

App-init事件

基于浏览器Window.onload 事件

所有脚本已经加载完毕

所有组件还没有开始创建

用于创建各种组件

这里给出一个App-init中实现更新优先级的程序

 

 

App-loadunload事件

load事件 参数类型(Sys.ApllicationLoadEventArgs)

 components属性:获得这次加载阶段中所有建立对象

 isPartialLoad属性:是否为异步调用导致页面加载

unload事件

 用户通知

 

PRM-initializeRequest事件

reques属性 :用于获得WebRequest对象

postBackElement:触发异步刷新的Dom元素

常用操作:

读取此请求信息

取消此次异步刷新

Code

要点:为每个控件指定明确的ID

不要为页面中的UpdatePanel添加Trigger

使用ContentTemplateContainer属性向UpdatePanel内添加新控件

updatepanel必须要from控件中

 

InitializeRequest:它的作用主要是取消回发,和优先级,看看它的ventArgs有什么内容InitializeRequestEventArgs
get_postBackElement();可以得到引发回发的元素,例如,Button1引发了回发.我们用e.get_postBackElement()就可以得到这个Button的所有信息.get_request()获取表示当前回发的请求对象.set_cancel(Bool);取消回发.我们就是用它控制回发优先级.另外.一个同等级的回发单击   两次.如果第一次回发还没结束.就会被取消,接着实行第二次回发

 

PRM-beginRequest 事件

参数类型:BeginRequestEventArs

 request属性:用于获得WebRequest对象

 postBackElement:触发异步刷新的Dom元素

常用操作:

改取请求消息

改变请求方式

显示更新提示

 

这里要实现在外部按钮提交异步刷新显示UpdateProgress

Code

PRM-pageLoading事件

dataItems属性:获得服务器注册的数据项

panelsDeleting属性:获得即将删除的UpdatePanel

panelsUpdating属性:获得即将更新的Updatepanel

 

即将要更新的Updatepanel样式改变

 

Code

PRM-pageLoaded事件

参数类型:pageLoadedEventArgs

dataItems属性:获得服务器注册的数据项

panelsCreated属性:获得新建的UpdatePanel

panelsUpdated属性:获得应经更新的UpdatePanel  

将更新的Updatepanel换一个位置 

Code

PRM-endRequest事件

参数类型:EndRequestEventArgs

dataItems属性:获得服务器注册的数据项

error属性:获得异步刷新时获得的错误

errorHandled属性:表明错误是否已经被处理了

response属性获得这次请求

这里以前就给出了例子了

你可能感兴趣的:(asp.net)