Ajax学习笔记(4)Sys.WebForms与服务端协同工作以及Sys.Application下的属性

Sys.WebForms.PageRequestManager

Ajax服务器端控件协同工作

var prm=Sys.WebForms.PageRequestManager.getInstance();

一.Events

1.     initializeRequest:异步回送初始化时触发,该事件包含三个属性

1)  cancel:获取或设置是否取消本次异步回送,返回布尔值;

var cancel=args.get_cancel();

args.set_cancel(value);

2)  postBackElement:获取触发本次异步回送的DOM元素

var pbElement=args.get_postBackElement();

3)  request:获取本次异步回送的webrequest对象

var request=args.get_request();

2.     beginRequest:向服务器发送异步回送请求之前触发

1)     postBackElement:获取触发本次异步回送的DOM元素

2)     request: 获取本次异步回送的webrequest对象

3.     pageLoading:客户端收到服务器异步回送响应,页面尚未进行任何更新

1)  panelsDeleting:获取一个HTML<div/>元素的集合,表示在UpdatePanle中,由于此

异步回送导致的将被删除的各个区域的内容

2panelsUpdating: 获取一个HTML<div/>元素的集合,表示在UpdatePanle中,由于此

异步回送导致的将被更新的各个区域的内容

3dataItems:获取一个json对象,表示服务端scriptmanager在本次异步回送过程中使用RegisterDataitem()方法捎带至客户端

4.pageLoaded:客户端收到服务器端异步回送响应,并且页面已经更新

1panelCreated: 获取一个HTML<div/>元素的集合,表示在UpdatePanle中,由于此

异步回送导致的新创建的各个区域的内容

2panelUpdated: 获取一个HTML<div/>元素的集合,表示在UpdatePanle中,由于此

异步回送导致的被更新的各个区域的内容

3)dataItems: 获取一个json对象,表示服务端scriptmanager在本次异步回送过程中使用RegisterDataitem()方法捎带至客户端

5.endRequest:客户端一次异步更新过程完成时被触发

1error:获取本次异步回送中是否发生的异常

var error=args.get_error();

2)errorHandled:获取或设置一个布尔值,确定本次异步回送中的异常是否经过处理。

Var eHandle=args.get_errorHandled();

Args.set_errorHandled();

3)     response:获取本次回送中HTTP响应的executor对象

4)dataItems: 获取一个json对象,表示服务端scriptmanager在本次异步回送过程中使用RegisterDataitem()方法捎带至客户端

二.Methods

1.abortPostBack:停止本次异步更新

  Sys.WebForms.WebRequestManager.getInstance.abortPostBack();

2.dispose:释放资源

  Sys.WebForms.WebRequestManager.getInstance.dispose();

3.getInstance:获取本次异步回送的WebRequestManager的实例

  var prm=Sys.WebForms.WebRequestManager.getInstance();

三.Proterties

1.isInAsyncPostBack:判断应用程序中是否属于异步回送状态

  var aPostBakc=prm.get_isInAsycPostBack(); 

Sys.Application

.Events

1.init:初始化,所有脚本加载完毕后触发,可以在init的时候添加或移除相关操作

  Sys.Application.add_init(handler);

  Sys.Application.remove_init(handler);

  2.load:客户端应用程序组件创建完成后触发,可以添加或移除相关操作

Sys.Application.add_load(handler);

Sys.Application.remove_load(handler);

  3.unload:客户端应用程序卸载时触,可以添加或移除相关操作

Sys.Application.add_unload(handler);

Sys.Application.remove_unload(handler);

.Methods:

  1.addComponent:将指定的组件注册到客户端框架中,如果该组件未初始化则自动初始化

Sys.Application.addComponent(component);

  2.dispose:将客户端框架下的资源释放

Sys.Application.dispose();

  3.findComponent:在指定的父级组件下根据id来寻找子组件。父级组件指定可选

var component=Sys.Application.findComponent(id,parent);简写为$find

  4.getComponents:返回数组,包含所有根据addComponent注册到客户端的组件

Var componetarr=Sys.Application.getComponets();

  5.initialize:初始化application

Sys.Application.initialize();

  6.notifyScriptLoaded:通知Ajax客户端相关js脚本成功加载

if(typeof(Sys)!=’underfined’)Sys.Application.notifyScriptLoaded();

  7.queueScriptReference:将脚本序列化按照规则来进行先后加载

Sys.Application.queueScriptReference(scripturl);

  8.raiseLoad:触发load事件

Sys.Application.raiseLoad();

  9.registerDisposableObject:向应用程序注册需要释放的对象

Sys.Application.registerDisposableObject(object);

  10.removeComponet:从客户端框架移除指定组件

Sys.Application.removeComponent(component);

  11.unregisterDisposableObject:从应用程序中注销释放的对象

Sys.Application.unregisterDisposableObject(objcet);

.Properties

  1.isCreatingComponents:确认组件是否已经创建返回true,false

    Var iscreate=Sys.Application.get_isCreatingComponets()

————————————————————————————————————————————————————————————

 

aspx页:

Code
<%@ Page Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    
protected void btnSubmit_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(
5000);
        lblbackmsg.Text 
= String.Format("{0} Posted {1} on {2}", txtName.Text, txtMsg.Text, DateTime.Now.ToString());
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Sys.WebForms</title>
    
<style type="text/css">
    #divwaitmsg
    {
        border:1px solid #ffffff;
        width:400px; 
        background
-color:Gray;
    }
    
</style>
</head>
<body>
    
<form id="form1" runat="server">
    
<asp:ScriptManager ID="sm" runat="server">
    
</asp:ScriptManager>
    
<asp:UpdatePanel ID="up" runat="server">
        
<ContentTemplate>
            Name:
<asp:TextBox ID="txtName" runat="server" Width="209px"></asp:TextBox>
            
<br />
            Message:
<br />
            
<asp:TextBox ID="txtMsg" runat="server" Columns="30" Rows="5" 
                TextMode
="MultiLine"></asp:TextBox>
            
<asp:Label ID="lblbackmsg" runat="server" Text=""></asp:Label>
            
<br />
            
        
</ContentTemplate>
        
<Triggers>
            
<asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
        
</Triggers>
    
</asp:UpdatePanel>
    
<asp:Button ID="btnSubmit" runat="server" Text="Submit" 
                onclick
="btnSubmit_Click" />
    
<div id="divwaitmsg">
            
<span id="divmsg">Please wait a momentStill Processing</span>
            
<button id="btnCancel" onclick="btnCancle_Click()">CancelProcess</button>
            
</div>
    
<script type="text/javascript">
        
//得获取本次异步回送的WebRequestManager的实例
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        
//异步回送初始化时触发
        prm.add_initializeRequest(initRequest);
        
//向服务器发送异步回送请求之前触发
        prm.add_beginRequest(onbeginrequest);
        
//客户端收到服务器端异步回送响应,并且页面已经更新
        prm.add_pageLoaded(onpageloaded);
        function pageLoad() {
            $
get("divwaitmsg").style.display = "none";
        }
        function initRequest(sender, args) {
            
//判断应用程序中是否属于异步回送状态
            
//获取触发本次异步回送的DOM元素
            if (prm.get_isInAsyncPostBack() && args.get_postBackElement().id == '<%= btnSubmit.ClientID %>') {
                
//获取或设置是否取消本次异步回送,返回布尔值
                args.set_cancel(true);
                showMsg(
true);
            }
        }
        function btnCancle_Click() {
            
if (prm.get_isInAsyncPostBack()) {
                
//停止本次异步更新
                prm.abortPostBack();
                showMsg(
false);
                ProcessStyle(
false);
            }
        }
        function showMsg(visible) {
            $
get("divwaitmsg").style.display = visible ? "block" : "none";
        }
        function ProcessStyle(visible) {
            $
get('<%= up.ClientID %>').disabled = visible;
        }
        function onbeginrequest(sender,args) {
            
if (args.get_postBackElement().id == '<%= btnSubmit.ClientID %>') {
                ProcessStyle(
true);
                showMsg(
true);
            }
        }
        function onpageloaded() {
            showMsg(
false);
            ProcessStyle(
false);
        }
    
</script>
    
</form>
</body>
</html>

点击submit按钮:

点击CancelProcess按钮取消本次异步回送

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值