ASPNET AJAX入门系列:使用客户端脚本对UpdateProgress编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ASP.NETAJAX入门系列:使用客户端脚本对UpdateProgress编程在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NETAJAXLibrary中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消异步更新,并且使用客户端脚本来显示或者隐藏进度信息。主要内容1.通过客户端脚本取消异步更新2.通过客户端脚本显示或者隐藏进度信息一.通过客户端脚本取消异步更新1.创建一个Web页面并切换到设计视图。2.在工具箱中双击ScriptManager、UpdatePanel、UpdateProgress控件添加到页面中。添加后页面如下:3.在UpdatePanel控件中添加一个Label控件并设置它的Text属性值为“PanelRendered”。4.添加一个Button控件并设置它的Text属性值为“refresh”。5.在UpdateProgress控件中添加文本textProcessing…,并添加一个HtmlButton控件并设置它的Text属性为cancle。6.双击refresh控件添加Click事件。7.在Buttond的Click事件处理中添加如下代码,人为的创建一个3秒钟的延迟并显示当前服务器的时间。protectedvoidButton1_Click(objectsender,EventArgse){System.Threading.Thread.Sleep(3000);Label1.Text=DateTime.Now.ToString();}8.添加如下脚本,获取一个当前PageRequestManager类的实例,并创建一个函数调用abortPostBack方法来停止异步更新。scriptlanguage=javascripttype=text/javascript!--varprm=Sys.WebForms.PageRequestManager.getInstance();functionCancelAsyncPostBack(){if(prm.get_isInAsyncPostBack()){prm.abortPostBack();}}//--/script9.设置HtmlButton的click特性为CancelAsyncPostBack。10.添加如下的样式块到head元素之间。styletype=text/css#UpdatePanel1{width:200px;height:100px;border:1pxsolidgray;}#UpdateProgress1{width:200px;background-color:#FFC080;bottom:0%;left:0px;position:absolute;}/style11.保存并按Ctrl+F5运行。12.单击refresh按钮,经过短暂的延时之后显示进度信息,完成异步更新之后UpdatePanel中的信息显示为当前的服务器时间。13.单击refresh按钮并立即单击Cancle按钮结束异步更新,注意到UpdatePanel中的时间信息并没有更新。二.通过客户端脚本显示或者隐藏进度信息在下列情况下,UpdateProgress控件将不会自动显示:由UpdateProgress控件关联的UpdatePanel之外的控件引发的异步更新。UpdateProgress控件没有关联任何UpdatePanel,不在UpdatePanel中的控件引发的异步更新(例如用代码实现的更新)。下面的例子将展示一个不在UpdateProgress所关联的UpdatePanel中的控件所引发的异步更新时,如何显示UpdateProgress控件。1.在我们前面所创建的页面中,切换到设计视图。2.选中UpdateProgress控件,在属性窗口中,设置AssociatedUpdatePanelID属性为UpdatePanel1。3.在UpdatePanel和UpdateProgress控件之外添加一个Button控件。4.设置Button的Text属性值为Trigger,并设置ID属性为Panel1Trigger。5.选择UpdatePanel控件,在属性窗口中Triggers属性行单击ellipsis(…)。6.创建一个异步更新触发器,并设置控件ID为Panel1Trigger。7.双击Trigger按钮添加Click事件。8.在Buttond的Click事件处理中添加如下代码,人为的创建一个3秒钟的延迟并显示当前服务器的时间,并附加上一条信息表示是由触发器引发的异步更新。protectedvoidPanel1Trigger_Click(objectsender,EventArgse){System.Threading.Thread.Sleep(3000);Label1.Text=DateTime.Now.ToString()+-trigger;}9.在代码窗口,在已有的Script脚本块中添加如下代码:scriptlanguage=javascripttype=text/javascript!--varprm=Sys.WebForms.PageRequestManager.getInstance();functionCancelAsyncPostBack(){if(prm.get_isInAsyncPostBack()){prm.abortPostBack();}}prm.add_initializeRequest(InitializeRequest);prm.add_endRequest(EndRequest);varpostBackElement;functionInitializeRequest(sender,args){if(prm.get_isInAsyncPostBack()){args.set_cancel(true);}postBackElement=args.get_postBackElement();if(postBackElement.id='Panel1Trigger'){$get('UpdateProgress1').style.display='block';}}functionEndRequest(sender,args){if(postBackElement.id='Panel1Trigger'){$get('UpdateProgress1').style.display='none';}}//--/script10.保存并按Ctrl+F5运行。11.单击Trigger按钮,如下所示:

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功