`
jinvasshole
  • 浏览: 767302 次
文章分类
社区版块
存档分类
最新评论

ASP.NET:为 AJAX 请求添加客户端事件

 
阅读更多

一、添加/删除请求开始事件的方法
Sys.WebForms.PageRequestManager.instance.add_beginRequest(beginRequestHandler)
Sys.WebForms.PageRequestManager.instance.remove_beginRequest(beginRequestHandler)
参数beginRequestHandler指定当请求开始之前要调用的函数。

例:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
function BeginRequestHandler(sender, args)
{
//添加你想做的事情
}

函数参数args是Sys.WebForms.BeginRequestEventArgs类的一个实例。
BeginRequestEventArgs类包含两个成员
1、postBackElement 属性,发出触发请求的HTML对象。如: var elem = arg.get_postBackElement();
2、request 属性,获取当前请求的实例对象。如: var request = arg.get_request();
返回值是一个Sys.Net.WebRequest类型的实例,这里我们对它不做过多的讲述,请读者查阅更多的资料。


二、添加/删除请求结束的代码
Sys.WebForms.PageRequestManager.instance.add_endRequest(endRequestHandler)
Sys.WebForms.PageRequestManager.instance.remove_endRequest(endRequestHandler)
参数endRequestHandler 指定当请求结束之后要调用的函数。例: Sys.WebForms.PageRequestManager.getInstance().add_endRequest
(EndRequestHandler);
function EndRequestHandler(sender, args)
{
//你想添加的代码
}
函数参数args是Sys.WebForms.EndRequestEventArgs类的实例。利用它可以获取请求期间发生的异常,以及请求返回的response对象。关于这 个类的详细信息请查看其帮助,由于篇幅问题,这里不再过多的说它。

三、演示实例
这个实例使用VS2005开发,注意还需要安装AJAX插件,插件名字是:ASPAJAXExtSetup.msi,可以到微软官方网站下载,也可以搜索一下,就近下载,安装之后会自动在VS2005工具箱上增加相关选项卡:

相关aspx的代码如下:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="AjaxDemo.aspx.cs"Inherits="AjaxDemo"%>

<%@RegisterAssembly="System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"
Namespace
="System.Web.UI"TagPrefix="asp"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>Ajax事件管理代码</title>
<styletype="text/css">
body
{
font-family:Tahoma;
}

div.AlertStyle
{
background-color:#FFC080;
top:95%;
left:1%;
height:20px;
position:absolute;
visibility:hidden;
}
</style>

</head>
<body>
<formid="form1"runat="server">
<div>
<asp:scriptmanagerID="ScriptManager1"runat="server"></asp:scriptmanager>
<scripttype="text/javascript"language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
functionBeginRequestHandler(sender,args)
{
varelem=args.get_postBackElement();
ActivateAlertDiv('visible','AlertDiv',elem.value+'被单击,正在获取系统时间');
}

functionEndRequestHandler(sender,args)
{
ActivateAlertDiv('hidden','AlertDiv','');
}

functionActivateAlertDiv(visstring,elem,msg)
{
varadiv=$get(elem);
adiv.style.visibility=visstring;
adiv.innerHTML=msg;
}

</script>


<asp:UpdatePanelID="UpdatePanel1"UpdateMode="Conditional"runat="Server">
<ContentTemplate>
<asp:PanelID="Panel1"runat="server"GroupingText="UpdatePanel的例子">
最后一次更新时间:
<%=DateTime.Now.ToString()%>.
<br/>
<asp:Buttonrunat="server"ID="Button1"Text="第一个按钮"OnClick="ProcessClick_Handler"/>
<asp:Buttonrunat="server"ID="Button2"Text="第二个按钮"OnClick="ProcessClick_Handler"/>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<divid="AlertDiv"class="AlertStyle">
</div>
</div>
</form>
</body>
</html>
相关asp.cs代码:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;

publicpartialclassAjaxDemo:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{

}

protectedvoidProcessClick_Handler(objectsender,EventArgse)
{
System.Threading.Thread.Sleep(
2000);
}
}
分享到:
评论

相关推荐

    ASP.NET高级编程:为校园BBS用户注册提供无刷新验证.pptx

    ASP.NET 3.5之前,ASP.NET自身并不支持AJAX的应用 在ASP.NET 3.5中,可以直接拖动AJAX控件,像普通控件一样的使用,实现Web页面的无刷新功能。在ASP.NET 3.5中,Web.config文件中已经声明了AJAX功能。;Scrip

    MSDN Webcast - ASP.NET AJAX深入浅出系列课程(12):Microsoft AJAX Library中异步通信层的扩展

    讲座内容: Microsoft AJAX Library为了便于开发AJAX应用提出了一个异步通信层,它是整个ASP.NET AJAX客户端AJAX请求的基础。事实上,我们能够基于这个通信平台进行轻松的扩展,使它能够支持不同的通信方式。这节...

    Asp.net+Ajax框架教程 文档+源码

    (一).... 使用Ajax library类库中的客户端WebReqest对象请求服务端... 7). 在客户端调用页面后台(Page behind)中方法... 12. 在客户端调用页面后台(Page behind)中方法示例... 8). 在客户端调用W

    MSDN Webcast - ASP.NET AJAX深入浅出系列课程(11):Microsoft AJAX Library中异步通信层使用

    使用这个异步通信层可以方便地发出AJAX请求,而且事实上,整个ASP.NET AJAX的客户端与服务器端的通信都是由它负责的。我们这节课将讲解一下这个异步通信层的使用方式,它可以方便我们做“纯粹”的AJAX应用。

    asp.net知识库

    在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    16.5.2 asp.net ajax控件客户端生命周期 589 16.6 客户端控件示例应用 592 16.7 调试和跟踪 603 16.8 本章总结 605 第17章 asp.net ajax控件开发——服务端 606 17.1 asp.net ajax服务器控件概述 606 17.2 ...

    ASP.NET MVC 3高级编程

    《asp.net mvc 3高级编程》 第1章 入门 1 1.1 asp.net mvc简介 1 1.1.1 asp.net mvc如何适应asp.net 1 1.1.2 mvc模式简介 2 1.1.3 mvc在web框架中的应用 2 1.1.4 asp.net mvc 3的发展历程 3 1.1.5 razor视图...

    ASP.NET 3.5 开发大全

    1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio ...

    asp.net 服务器推送技术 jquery ajax

    本程序采用comet技术实现,达到信息及时显示到各个请求的客户端,目前已完成多人聊天,在局域网测试ok。15个人同时测试没有问题。可以达到信息及时的分发到各个客户端。基本上说可以完成ajax隔多少秒去请求数据的...

    ASP.NET3.5从入门到精通

    1.1.4 ASP.NET 客户端 1.1.5 ASP.NET 3.5 新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET 应用程序需框架 1.2.1 什么是.NET 应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  ...

    ASP.NET 3.5 开发大全word课件

    1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio ...

    ASP.NET4高级程序设计(第4版) 3/3

    此外,《ASP.NET 4高级程序设计(第4版)》专门提供了两章的内容来教你如何用Ajax 技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。  ...

    ASP.NET 3.5 开发大全11-15

    1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio ...

    ASP.NET 3.5 开发大全1-5

    1.1.4 ASP.NET客户端 1.1.5 ASP.NET 3.5新增控件 1.1.6 ASP.NET 3.5 AJAX 1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio ...

    asp.net+Web+mvc4.0 EasyUI 最新 权限管理系统源码教程

    Zephyr.Net 企业版是基于Asp.Net MVC4.0 + WebAPI + Knockout 技术,采用EasyUI为前台开发展示UI,Knockout主要负责前端的逻辑交互,再结合jQuery Ajax进行提交数据请求。 二、框架特色 1、基于 ASP.NET MVC4.0 + ...

    ASP.NET MVC PeachAjax:ASP.NET MVC动态Ajax引擎-开源

    该库生成动态JavaScript代码以用于AJAX操作。... 自定义功能包括:*自定义参数*自定义回调*参数的自定义客户端处理功能(用于序列化专用模型类型)*自定义预请求处理器*自定义后请求处理器*还有更多!

    webchat:网络实时聊天,使用服务器发送事件 (HTML5)、AJAX 和 ASP.NET MVC (C#)

    网络实时聊天,使用服务器发送事件 (HTML5)、AJAX 和 ASP.NET MVC (C#) 作为后端,以及用于管理聊天所基于的 NoSQL 数据库的 Redis。 SSE 用于从服务器到客户端的一种通信方式,当用户发送新消息时,服务器向所有人...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    可以加快开发效率,这是行业的发展趋势,但是局限于这样的“傻瓜化开发方式”的开发人员的竞争力和成长性都是非常有限的,遇到ASP.Net一些高级技术(比如ASP.Net MVC、SEO、网站调优、服务端客户端混合编程、AJAX等...

Global site tag (gtag.js) - Google Analytics