你的位置:首页 > 软件开发 > ajax > ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

发布时间:2008-10-23 21:54:00
在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消异步更新,并且使用客户端脚本来显示或者隐藏进度信息。 主要内容1.通过客户端脚本取消异步更新2.通过客户端脚本显示或者隐

在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消异步更新,并且使用客户端脚本来显示或者隐藏进度信息。

 

主要内容

1.通过客户端脚本取消异步更新

2.通过客户端脚本显示或者隐藏进度信息

 

一.通过客户端脚本取消异步更新

1.创建一个Web页面并切换到设计视图。

2.在工具箱中双击ScriptManager、UpdatePanel、UpdateProgress控件添加到页面中。添加后页面如下:

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

3.在UpdatePanel控件中添加一个Label控件并设置它的Text属性值为“Panel Rendered”。

4.添加一个Button控件并设置它的Text属性值为“refresh”。

5.在UpdateProgress控件中添加文本text Processing…,并添加一个HtmlButton控件并设置它的Text属性为cancle。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

6.双击refresh控件添加Click事件。

7.在Buttond的Click事件处理中添加如下代码,人为的创建一个3秒钟的延迟并显示当前服务器的时间。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程protected void Button1_Click(object sender, EventArgs e)ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    Label1.Text = DateTime.Now.ToString();ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程<!-- ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程function CancelAsyncPostBack() ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    if (prm.get_isInAsyncPostBack()) ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程      prm.abortPostBack();ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    }ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程  width:200px; height:100px;ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程  border: 1px solid gray;ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程#UpdateProgress1 {ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程  width:200px; background-color: #FFC080;ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程  bottom: 0%; left: 0px; position: absolute;ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程</style>

11.保存并按Ctrl + F5运行。

12.单击refresh按钮,经过短暂的延时之后显示进度信息,完成异步更新之后UpdatePanel中的信息显示为当前的服务器时间。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

13.单击refresh按钮并立即单击Cancle按钮结束异步更新,注意到UpdatePanel中的时间信息并没有更新。

二.通过客户端脚本显示或者隐藏进度信息

在下列情况下,UpdateProgress控件将不会自动显示:

    由UpdateProgress控件关联的UpdatePanel之外的控件引发的异步更新。

    UpdateProgress控件没有关联任何UpdatePanel,不在UpdatePanel中的控件引发的异步更新(例如用代码实现的更新)。

下面的例子将展示一个不在UpdateProgress所关联的UpdatePanel中的控件所引发的异步更新时,如何显示UpdateProgress控件。

1.在我们前面所创建的页面中,切换到设计视图。

2.选中UpdateProgress控件,在属性窗口中,设置AssociatedUpdatePanelID属性为UpdatePanel1。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

3.在UpdatePanel和UpdateProgress控件之外添加一个Button控件。

4.设置Button的Text属性值为Trigger,并设置ID属性为Panel1Trigger。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

5.选择UpdatePanel控件,在属性窗口中Triggers属性行单击ellipsis (…)。

6.创建一个异步更新触发器,并设置控件ID为Panel1Trigger。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

7.双击Trigger按钮添加Click事件。

8.在Buttond的Click事件处理中添加如下代码,人为的创建一个3秒钟的延迟并显示当前服务器的时间,并附加上一条信息表示是由触发器引发的异步更新。

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程protected void Panel1Trigger_Click(object sender, EventArgs e)ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    Label1.Text = DateTime.Now.ToString() + " - trigger";ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程var prm = Sys.WebForms.PageRequestManager.getInstance();ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程function CancelAsyncPostBack() ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    if (prm.get_isInAsyncPostBack()) ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程      prm.abortPostBack();ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    }ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程prm.add_initializeRequest(InitializeRequest);ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程prm.add_endRequest(EndRequest);ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程var postBackElement;ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程function InitializeRequest(sender, args) ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    if (prm.get_isInAsyncPostBack()) ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程        args.set_cancel(true);ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    postBackElement = args.get_postBackElement();ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    if (postBackElement.id = 'Panel1Trigger') ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程        $get('UpdateProgress1').style.display = 'block';                ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    }ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程function EndRequest(sender, args) ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    if (postBackElement.id = 'Panel1Trigger') ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程{ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程        $get('UpdateProgress1').style.display = 'none';ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程    }ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程}ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程// -->ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程</script>

10.保存并按Ctrl + F5运行。

11.单击Trigger按钮,如下所示:

ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程
[翻译自官方文档]

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:ASP.NETAJAX入门系列(7):使用客户端脚本对UpdateProgress编程

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。